Bypass之D盾IIS防火墙SQL联合注入绕过(新版)

这种技术文章,不好意思标原创了,一下内容均来自公众号
Bypass

实验环境
IIS+ASPX+MSSQL

一、MSSQL特性
在MSSQL中,参数和union之间的位置,常见的可填充的方式有如下几种:
1.空白字符
01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

2.注释符号

Mssql也可以使用注释符号/**/

3.浮点数

select * from admin where id=1.1union select 1,'2',db_name() from admin

4.1E0的形式:

select * from admin where id=1e0union select 1,'2',db_name() from admin

但是很遗憾,以上几种填充方式都无法绕过D盾的union select检测

二、bypass Fuzz
针对构造的SQL注入点,进行Fuzz参数和union之间的位置

http://192.168.8.161/sql.aspx?id=1【Fuzz位置】union select null,null,SYSTEM_USER

Fuzz结果:通过1.e这种特殊的数值形式,可成功绕过union select防御。

1803112887.png

到这里,可union select,形成了部分Bypass,接下来考虑,如何去绕过select from的防御规则。

三、个人觉得比较厉害的 ASPX HPP特性绕过
假设GET/POST/COOKIE同时提交的参数id,服务端接收参数id的顺序是什么样呢?

ASPX+IIS:同时提交参数id,会接收所有参数,通过逗号分隔,如下图:

二、Bypass 测试

    利用ASPX+IIS同时接收参数的方式比较特别,可以用这个特性来搞事。 利用这个特性来拆分select from,从而绕过D盾的SQL注入防御规则。


总之就是用  1.e  来绕过D盾对union select的检测
用ASPX的特性,将要输入的payload语句放在   GET,POST,COOKIE的位置传输,来绕过D盾对select from语句的检测
<think>嗯,用户问的是SQL注入绕过D的方法。首先,我需要确认D是什么。D可能是一款防火墙或者入侵检测系统,专门用来防御Web攻击,比如SQL注入。接下来,我应该回忆常见的SQL注入绕过技术,并结合D的特点来分析可能的绕过方法。 首先,用户可能需要知道D检测机制。通常,这类工具会检测常见的SQL关键字,比如SELECT、UNION、WHERE等,或者特殊字符如单引号、注释符。所以绕过的方法可能包括混淆这些关键字,比如大小写变换、插入注释或空白符,或者使用URL编码。 然后,我需要考虑具体的绕过技巧。比如,使用字符串拼接,像用CONCAT('sel','ect')代替SELECT;或者利用十六进制编码,把字符串转换成十六进制形式,避免使用引号。还有,是否可以利用时间盲注或其他盲注方式,因为D可能对即时的错误回显有检测,但时间盲注通过延迟响应来获取信息,可能更隐蔽。 另外,用户可能想知道如何测试这些方法,比如通过修改HTTP请求的参数,使用工具如Burp Suite来构造和发送恶意请求,观察响应是否有变化或是否被拦截。同时,提醒用户注意法律和道德问题,未经授权的测试是非法的。 需要注意,不同的版本或配置的D可能有不同的检测规则,所以一种方法可能在某些情况下有效,而在其他情况下无效。因此,保持技术更新和持续测试是关键。 最后,要确保回答结构清晰,分点列出方法,并强调防御的重要性,比如参数化查询和输入验证,帮助用户不仅了解攻击方法,也加强防护意识。</think>SQL注入绕过D的常见方法及原理分析: 1. **混淆关键字符** - 使用URL编码:`SELECT` → `%53%45%4C%45%43%54` - 插入注释符:`SEL/**/ECT` 或 `SEL/*!*/ECT` - 大小写混合:`SeLeCt`(部分WAF对大小写不敏感) 2. **等价替换技术** - 空字符截断:`%00SELECT`(利用空字节截断过滤规则) - 特殊符号分割:`SEL[+E]CT` 或 `SEL%0bECT` - 注释符干扰:`UNION/*bypass*/SELECT` 3. **参数污染攻击** - 提交重复参数:`?id=1&id=2 union select 1,2,3--` - 利用不同参数解析顺序绕过检测 4. **时间盲注绕过** - 使用延时函数: ```sql ' OR IF(ASCII(SUBSTR(database(),1,1))>100,sleep(3),1)-- ``` - 结合位运算减少特征字符 5. **分块传输编码** - 通过`Transfer-Encoding: chunked`分割恶意载荷 - 示例: ``` 3 un 2 io 4 n s ``` 6. **二次编码绕过** - 双重URL编码:`%2527` → `'` - 混合编码类型:`%u0027`(Unicode编码) 7. **非常规语句构造** - 使用`LIKE`代替`=`: ```sql ' OR 1 LIKE 1-- ``` - 利用数学表达式:`(1)div(0)`代替显式报错 防御建议: 1. 使用预编译语句(参数化查询) 2. 严格限制数据库权限(最小权限原则) 3. 启用WAF的语义分析功能 4. 对输入进行多层级过滤验证 5. 定期更新防护规则库 注意:本文仅用于安全研究学习,未经授权测试他人系统属于违法行为。实际防护需结合多层防御体系,单一检测工具无法完全阻止高级攻击。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值