HEMA网站盲注SQL注入漏洞技术分析

本文详细记录了在fasteditor.hema.com发现的盲注SQL注入漏洞技术细节,包括漏洞发现过程、利用技术分析(布尔盲注/堆叠查询/时间盲注)、手工构造payload技巧,以及最终成功获取数据库用户名的完整技术实现路径。

HEMA网站盲SQL注入漏洞分析

技术背景

现代网站普遍采用数据库存储数据,服务器应用通过SQL查询语句与数据库交互。当存在查询构造缺陷时,攻击者可能通过注入恶意SQL代码获取敏感数据,这类漏洞被称为SQL注入(SQLi),在漏洞赏金计划中通常属于高危漏洞。

漏洞发现过程

在HEMA照片项目服务子域fasteditor.hema.com发现可疑API端点:

1
https://fasteditor.hema.com/api/user/<userID>/products?offset=0&limit=8&orderby=id+DESC

测试发现orderby参数存在SQL注入特征:

  1. 插入单引号导致返回PDO错误
  2. 错误信息显示原始SQL片段且未转义

漏洞利用技术

SQLMap工具检测确认存在三种攻击方式:

  1. 布尔盲注:通过结果排序差异推断数据
  2. 堆叠查询:追加执行额外SQL语句
  3. 时间盲注:利用SLEEP()函数时序分析

手工Payload构造

由于防火墙限制,最终采用时间盲注技术构造特殊payload:

1
orderby=width+DESC;SELECT+(CASE+WHEN+(SUBSTRING((user())FROM(1)FOR(1))='§h§')+THEN+SLEEP(8)+ELSE+SLEEP(1)+END)

关键技术点:

  • 使用FROM/FOR替代被过滤的逗号
  • 通过Burp Intruder自动化字符爆破
  • 响应时间差异判断字符命中

漏洞验证结果

成功获取数据库用户信息:

1
hema_live@10.0.102.192

证明该端点存在可被利用的SQL注入漏洞。

修复建议

  1. 使用参数化查询替代字符串拼接
  2. 实施严格的输入验证
  3. 建立SQL查询日志审计机制

时间线

  • 2020-05-11:漏洞发现并修复
  • 2020-05-15:HEMA确认漏洞并发放奖励
  • 2020-08-06:报告公开披露
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计