记一次HW供应链攻击到SQL注入新用法
字数 1192 2025-08-09 17:09:29
供应链攻击与SQL注入新用法实战分析
0. 前言
本文记录了一次通过供应链攻击结合SQL注入技术成功渗透目标系统的实战案例。攻击者在直接攻击目标系统未果后,通过关联公司信息找到其他使用相同系统的站点,利用未授权接口和创新的SQL注入技术成功获取系统权限。
1. 供应链攻击思路
1.1 攻击背景
- 直接攻击目标站点尝试了弱口令、SQL注入等多种方法均未成功
- 发现页脚显示"xxxxx信息科技有限公司"的banner
1.2 攻击方法
- 在FOFA等网络空间测绘平台搜索相同banner信息
- 找到使用相同系统但未参与攻防演练的其他厂商站点
- 这些站点可能安全防护较弱,整改不彻底
2. 未授权接口发现
2.1 接口信息
- 路径:
/HanNeng/SelectHelp - 请求方法:POST
- 参数:
Type=User Field=UserName Con= - 请求头需包含:
X-Requested-With: XMLHttpRequest
2.2 接口特点
- 存在未授权访问漏洞
- Field参数存在SQL注入漏洞
3. SQL注入分析与利用
3.1 注入点确认
- 后端SQL语句部分结构:
select count(*) from tb_User where IsDeleted!=1 and [Field参数值] - Field参数直接拼接为列名,存在注入
3.2 WAF绕过挑战
- 直接使用sqlmap等工具会被WAF拦截
- 传统注入方法受阻
3.3 创新注入方法
- 分析发现Con参数用于模糊匹配,实际SQL可能是:
select count(*) from tb_User where IsDeleted!=1 and userid like '%可控点%' - 利用Field参数控制查询列,结合Con参数进行盲注:
- 设置
Field=password查询密码列 - 通过Con参数逐字符爆破密码hash值
- 观察返回的pageCount数量变化判断猜测是否正确
- 设置
3.4 注入注意事项
- 模糊匹配使用
%通配符,注入出的数据前后可能包含其他字符 - 需要系统存在多个用户才能通过数量变化判断注入结果
- 注入出的密码是MD5等哈希值,需要后续破解
4. 攻击流程总结
- 通过供应链信息找到同系统其他站点
- 发现未授权接口
/HanNeng/SelectHelp - 确认Field参数存在SQL注入
- 绕过WAF使用Field+Con参数组合进行盲注
- 逐字符获取用户密码哈希
- 破解哈希获取明文密码
- 使用获取的凭证登录后台系统
5. 防御建议
-
供应链安全:
- 统一组件/系统在不同客户处的安全基线
- 定期检查所有使用系统的客户安全状况
-
接口安全:
- 实施严格的权限控制,避免未授权访问
- 对敏感接口增加身份验证
-
SQL注入防护:
- 使用参数化查询或ORM框架
- 对用户输入进行严格过滤和类型检查
- 避免直接拼接用户输入到SQL语句
-
密码安全:
- 使用强哈希算法(如bcrypt、PBKDF2等)
- 为每个用户使用独立salt
- 定期更换密码
-
WAF配置:
- 更新规则库覆盖新型注入技术
- 对模糊查询等特殊场景进行针对性防护
本案例展示了如何通过创新的SQL注入技术绕过传统防御措施,强调了全面安全防护的重要性,不仅需要关注直接攻击面,还需考虑供应链相关的间接攻击路径。