D盾 v2.0.6.42 测试记录

简介: 0x01 前言   之前发了一篇博客《Bypass D盾_IIS防火墙SQL注入防御(多姿势)》,D哥第一时间联系我,对问题进行修复。这段时间与D哥聊了挺多关于D盾这款产品的话题,实在是很佩服,对这样一款产品的细致以及投入。

0x01 前言

  之前发了一篇博客《Bypass D盾_IIS防火墙SQL注入防御(多姿势)》,D哥第一时间联系我,对问题进行修复。这段时间与D哥聊了挺多关于D盾这款产品的话题,实在是很佩服,对这样一款产品的细致以及投入。一个人,一款产品,一路走来,弥足艰辛。旧版D盾_防火墙支持win2003,新版D盾_防火墙功能更加强大。前阵子已经拿到最新的内测版本,奈何杂事缠身,一直没有深入的对防御规则进行测试,抽空下载了新发布版本对之前发现的问题进行复测,这里记录一下测试过程。

0x02 SQL注入防御

  搭建了一个IIS+ASPX的环境,对一些关键字进行测试,查看拦截情况:

    union  不拦截

    union select  拦截

    select  from  拦截

测试思路:

如何绕过union select?

  在对旧版本测试中,曾使用1eunion来绕过SQL注入防御,新版本D盾对防御规则进行重构,有着本质的区别,抱着怀疑的心态进行尝试,虽然1e的形式已被修复了,通过Fuzz可以发现,使用1.e这种特殊的数值形式,可成功绕过union select防御。

接下来考虑,如何去绕过select from的防御规则:

绕过姿势:GET+POST

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

ASP+IIS: COOKIE会被POST代替,POST会被GET代替,同时提交参数id,最后只会得到GET中的值,如下图:

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

PHP+IIS: GET会被POST替代,POST会被COOKIE替代,最终只会得到COOKIE的值,如下图:

  从中可以发现,ASPX+IIS同时接收参数的方式比较特别,可以用这个特性来搞事。

  利用这个特性来拆分select from,从而绕过D盾的SQL注入防御规则。

局限:使用Request.Params["id"]来获取参数, 三种方式可以进行参数传递:(1). Form (2). ?id= (3).cookie 获取到参数拼接起来

这姿势适合场景略局限,仅仅作为Bypass分享一种思路而已。

 

 0x03 关于盲注

  通过盲注去获取一些敏感信息,如version()、user()、database()等。

 

 

 

 

目录
相关文章
|
小程序 开发者
微信小程序跳转微信小程序,使用微信开发者工具的测试记录
本文是博主学习微信小程序的记录,希望对大家有所帮助。
544 0
微信小程序跳转微信小程序,使用微信开发者工具的测试记录
正点原子DS100手持示波器测试记录
正点原子DS100手持示波器测试记录
376 0
正点原子DS100手持示波器测试记录
|
SQL Java 数据库连接
【Spring】作业记录:spring项目从创建、配置到功能实现、测试
【Spring】作业记录:spring项目从创建、配置到功能实现、测试
103 0
【Spring】作业记录:spring项目从创建、配置到功能实现、测试
|
消息中间件 传感器 缓存
RT-Thread记录(十二、I/O 设备模型之UART设备 — 使用测试)
从 UART 设备开始学会使用 RT-Thread I/O 设备模型 。
349 0
RT-Thread记录(十二、I/O 设备模型之UART设备 — 使用测试)
|
Web App开发 测试技术 API
记录一次用 curl 测试账户登录服务接口
问题 后台开发服务接口时,经常会用到很多测试工具,比如 Postman、Apipost、Jmeter 等。这些都是带有图形用户界面的工具,有没有一些显得高大上的方法呢?嗯,是有的。 比如今天开发某个账户登陆服务接口时,就想到了先用命令行来测试一下服务接口是否好用。
336 0
|
JSON 数据安全/隐私保护 数据格式
CURL常用命令记录--用于简单测试接口
CURL常用命令记录--用于简单测试接口
195 0
|
前端开发 jenkins 关系型数据库
|
前端开发 应用服务中间件 网络协议
tomcat部署测试应用及tomcat常用组件配置记录
tomcat部署测试应用及tomcat常用组件配置记录
2709 0
|
大数据 测试技术
【测试记录】EF插入查询性能
介绍     背景什么就不提了,无外乎出现了大数据需要处理。简单的说就是我测试了EF正常的插入以及一个优化小方式而已,然后做了查询记录。其余没有什么,写这篇只是为了记录结果方便以后数据参考吧。 代码介绍: 首先是插入代码常规: EFHelp eFHelp = new EFHelp();...
1035 0