挖洞经验 | 看我如何挖掘并成功利用印度Popular Sports公司网站主机头的SQL注入漏洞
字数 1201 2025-08-18 11:37:23

利用主机头挖掘SQL注入漏洞的完整指南

漏洞背景

本文档详细记录了如何通过分析HTTP主机头发现并利用SQL注入漏洞的过程,目标为印度一家流行体育公司的网站。该漏洞存在于AWS云环境下的Web应用中,通过精心构造的HTTP头实现了数据库信息泄露。

初始侦察

  1. 环境识别

    • 发现IP被立即阻止时,通过错误信息判断应用运行在AWS环境
    • 确认标志:HTTP响应中包含X-Amz-Cf-Id头,表明使用了CloudFront服务
  2. 测试策略调整

    • 由于直接IP被阻止,转向测试HTTP头漏洞
    • 重点测试Host头和X-Forwarded-Host

漏洞发现过程

主机头测试

  1. 直接修改Host头无效
  2. 添加X-Forwarded-Host头测试:
    • 设置为www.google.com → 302重定向到Google
    • 设置为www.evil.com → 403 Forbidden响应

漏洞分析

  1. 安全机制推断

    • 应用后端有主机值白名单检查
    • 两种可能实现方式:
      • 数组/列表硬编码检查
      • 数据库查询验证
  2. SQL注入验证

    • 构造延迟注入测试:
      X-Forwarded-Host: www.evil.com' OR (SELECT 1 FROM (SELECT SLEEP(10))a)--
      
    • 观察到9.4秒的响应时间,确认存在时间型SQL注入

漏洞利用

初始尝试

  1. 直接使用sqlmap失败,连接被拒绝
  2. 调整参数(--delay, --timeout)仍无效

绕过限制

  1. 黑名单分析

    • 测试输入<script>alert(1)</script> → 400 Bad Request
    • 确认<, >, script等字符被过滤
  2. 使用sqlmap tamper脚本

    • 选择between.py脚本:
      • <替换为NOT BETWEEN
      • >替换为NOT BETWEEN
    • 成功绕过字符过滤

数据提取

  1. 成功获取数据库信息:
    • 用户凭据
    • 电子邮件地址
    • 其他敏感数据

关键知识点总结

  1. AWS环境特征

    • X-Amz-Cf-Id头表明使用CloudFront
    • 弹性负载均衡(ELB)常见配置
  2. HTTP头注入测试

    • HostX-Forwarded-Host是常见测试点
    • 不同值的响应差异可揭示后端逻辑
  3. SQL注入技巧

    • 时间延迟是验证盲注的有效方法
    • 通过响应时间差异确认漏洞存在
  4. 绕过防御机制

    • 识别黑名单字符
    • 使用等价语法替换被过滤字符
    • sqlmap tamper脚本的灵活应用
  5. 漏洞利用流程

    初始测试 → 发现异常 → 构造POC → 绕过限制 → 数据提取
    

防御建议

  1. 对HTTP头输入实施严格验证
  2. 使用参数化查询而非字符串拼接
  3. 实施多层防御而非仅依赖黑名单
  4. 对数据库查询实施最小权限原则
  5. 监控异常查询模式

时间线参考

  • 报告厂商:2018.5.3
  • 修复确认:2018.5.3
  • 重新测试:2018.5.3
  • 获得奖励:2018.5.5

通过本案例,安全研究人员可以学习到如何在现代Web应用中通过非常规入口点发现SQL注入漏洞,以及如何绕过常见的防御机制实现数据提取。

利用主机头挖掘SQL注入漏洞的完整指南 漏洞背景 本文档详细记录了如何通过分析HTTP主机头发现并利用SQL注入漏洞的过程,目标为印度一家流行体育公司的网站。该漏洞存在于AWS云环境下的Web应用中,通过精心构造的HTTP头实现了数据库信息泄露。 初始侦察 环境识别 : 发现IP被立即阻止时,通过错误信息判断应用运行在AWS环境 确认标志:HTTP响应中包含 X-Amz-Cf-Id 头,表明使用了CloudFront服务 测试策略调整 : 由于直接IP被阻止,转向测试HTTP头漏洞 重点测试 Host 头和 X-Forwarded-Host 头 漏洞发现过程 主机头测试 直接修改 Host 头无效 添加 X-Forwarded-Host 头测试: 设置为 www.google.com → 302重定向到Google 设置为 www.evil.com → 403 Forbidden响应 漏洞分析 安全机制推断 : 应用后端有主机值白名单检查 两种可能实现方式: 数组/列表硬编码检查 数据库查询验证 SQL注入验证 : 构造延迟注入测试: 观察到9.4秒的响应时间,确认存在时间型SQL注入 漏洞利用 初始尝试 直接使用sqlmap失败,连接被拒绝 调整参数( --delay , --timeout )仍无效 绕过限制 黑名单分析 : 测试输入 <script>alert(1)</script> → 400 Bad Request 确认 < , > , script 等字符被过滤 使用sqlmap tamper脚本 : 选择 between.py 脚本: 将 < 替换为 NOT BETWEEN 将 > 替换为 NOT BETWEEN 成功绕过字符过滤 数据提取 成功获取数据库信息: 用户凭据 电子邮件地址 其他敏感数据 关键知识点总结 AWS环境特征 : X-Amz-Cf-Id 头表明使用CloudFront 弹性负载均衡(ELB)常见配置 HTTP头注入测试 : Host 和 X-Forwarded-Host 是常见测试点 不同值的响应差异可揭示后端逻辑 SQL注入技巧 : 时间延迟是验证盲注的有效方法 通过响应时间差异确认漏洞存在 绕过防御机制 : 识别黑名单字符 使用等价语法替换被过滤字符 sqlmap tamper脚本的灵活应用 漏洞利用流程 : 防御建议 对HTTP头输入实施严格验证 使用参数化查询而非字符串拼接 实施多层防御而非仅依赖黑名单 对数据库查询实施最小权限原则 监控异常查询模式 时间线参考 报告厂商:2018.5.3 修复确认:2018.5.3 重新测试:2018.5.3 获得奖励:2018.5.5 通过本案例,安全研究人员可以学习到如何在现代Web应用中通过非常规入口点发现SQL注入漏洞,以及如何绕过常见的防御机制实现数据提取。