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()等。

最新文章

  1. 关于Karaf Container 4.0.7
  2. Linux系统用户和用户组介绍
  3. js简单弹出层、遮罩层
  4. Lex&Yacc Parser错误发生后再次parser之前恢复初始状态
  5. 关于dp dip dpi px
  6. AndroidStudio 混淆打包
  7. UVALive 5905 Pool Construction 最小割,s-t割性质 难度:3
  8. WinForm 加载自定义控件闪烁问题
  9. Ubuntu刷新DNS
  10. JQuery处理json与ajax返回JSON实例
  11. JS学习第三课
  12. STM32 SysTick定时器应用【worldsing笔记】
  13. Java基础知识强化之集合框架笔记43:Set集合之TreeSet存储Integer类型的元素并遍历
  14. 【转】C#读取文件时的共享方式
  15. Ghost win7 系统安装(虚拟机)
  16. lwp 模拟行锁堵塞 前端超时
  17. NGUI简单背包系统的实现
  18. JPA 系列教程6-单向多对多
  19. 7.nginx伪静态规则
  20. SQL Server - 索引详细教程 (聚集索引,非聚集索引)

热门文章

  1. React Native安卓项目打包发布APK步骤
  2. R语言-查看加载包、卸除加载包及安装包与卸载包
  3. C++标准转换运算符static_cast
  4. OSPF邻居状态机
  5. 关于Unity中顶点片元Shader实例
  6. mysql insert exists || mysql 判断数据是否存在
  7. selenium+java-查找页面中包含关键字的URL
  8. 用OpenGL进行曲线、曲面的绘制
  9. List转DataTable(反射) ; 将泛型集合类转换成DataTable ; 将集合类转换成DataTable
  10. zabbix server端自动发现和zabbix agent端自动注册