zoukankan      html  css  js  c++  java
  • D盾 v2.0.6.42 测试记录

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

     

     

     

  • 相关阅读:
    mysql数据库常用指令
    解决windows的mysql无法启动 服务没有报告任何错误的经验。
    “Can't open file for writing”或“operation not permitted”的解决办法
    启动Apache出现错误Port 80 in use by "Unable to open process" with PID 4!
    如何打开windows的服务services.msc
    常见的HTTP状态码 404 500 301 200
    linux系统常用的重启、关机指令
    (wifi)wifi移植之命令行调试driver和supplicant
    linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
    alloc_chrdev_region申请一个动态主设备号,并申请一系列次设备号
  • 原文地址:https://www.cnblogs.com/xiaozi/p/7648361.html
Copyright © 2011-2022 走看看