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语句的检测
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值