SQL注入攻击日志摘录-20260916.md 6.2 KB

SQL 注入攻击日志摘录(对应攻防演练报告)

来源日志包:问题整改/日志.rar
对照报告:问题整改/杭州第一技师学院智慧校园系统存在SQL注入漏洞(补充成果).docx
整理日期:2026-09-17


1. 结论

在客户提供的 日志.rar 中,已定位到与 Word 报告完全吻合的 SQL 注入攻击痕迹。

核心对应关系:

Word 报告描述 日志证据
入口 POST /prod-api/auth/register 大量 请求地址'/auth/register',发生未知异常
tenantId 注入进 SQL sys_config ... AND tenant_id = '000000' AND extractvalue(...)
报错型注入 extractvalue / XPATH java.sql.SQLException: XPATH syntax error: '~...'
落点 SysConfigMapper The error may exist in org/dromara/system/mapper/SysConfigMapper.java
泄露 root@172.16.0.68 XPATH syntax error: '~root@172.16.0.68'(约 200 次)
查注册开关触发 参数 sys.account.registerUser
拖库用户/配置 报错片段中出现表字段、时间戳、BCrypt 哈希分片等

主证据文件(推荐引用):

  • 日志/ruoyi-admin-68-9901.log(节点 68,体量最大、攻击痕迹最完整)
  • 同内容副本:日志/68/ruoyi-admin-68-9901.log

2. 日志包结构说明

日志.rar 解压后主要包含双机节点日志:

目录 说明
日志/67/ 节点 67 应用/系统日志
日志/68/ 节点 68 应用/系统日志
日志/*.log 根目录另有一份拷贝(与 67/68 有重叠)

攻击相关命中主要集中在 68 节点 的 ruoyi-admin-68-9901.log。


3. 攻击时间线(基于主日志)

主日志:ruoyi-admin-68-9901.log

统计项 数值
XPATH syntax error 42230 次
extractvalue 16726 次
/auth/register 异常 8644 次
SysConfigMapper 8540 次
root@172.16.0.68 泄露 200 次
参数 sys.account.registerUser 8747 次
首次 XPATH 关联时间 2026-09-16 10:43:25
末次 XPATH 关联时间 2026-09-16 23:36:48

按小时分布(XPATH 相关):

时段 相对强度
10 时 少量探测
14 时 明确命中(含 root@、版本探测)
15 时 高峰(约 3.1 万行级)
16 时 仍高强度
17 / 21 / 22 / 23 时 持续/回扫

与报告截图高度吻合的关键时刻示例:

  • 2026-09-16 14:49:32:/auth/register + extractvalue(SELECT version()) → ~5.7.39-log
  • 2026-09-16 14:50:08:/auth/register + extractvalue(SELECT user()) → ~root@172.16.0.68

4. 关键证据摘录(与报告逐条对应)

4.1 攻击入口:注册接口

请求地址'/auth/register',发生未知异常.

(同秒内连续多次,符合自动化注入工具特征)

4.2 注入点:tenant_id 拼进 sys_config 查询

==>  Preparing: SELECT config_id, config_name, config_key, config_value, ...
     FROM sys_config
     WHERE (config_key = ?)
       AND tenant_id = '000000' AND extractvalue(1,concat(0x7e,(SELECT user()))) AND '1'='1'
==> Parameters: sys.account.registerUser(String)

说明:注册流程先查“是否开启注册”,恶意 tenantId 被多租户插件拼进 SQL,从而触发注入。

4.3 报错栈落点:SysConfigMapper

### The error may exist in org/dromara/system/mapper/SysConfigMapper.java (best guess)
### Cause: java.sql.SQLException: XPATH syntax error: '~root@172.16.0.68'

4.4 与报告完全一致的库账号泄露

java.sql.SQLException: XPATH syntax error: '~root@172.16.0.68'

4.5 信息探测与拖数痕迹(报错回显)

XPATH 回显片段(日志统计 Top)可见攻击者在逐步抽取元数据/业务数据,例如:

回显片段(截断) 含义(推断)
~5.7.39-log MySQL 版本
~root@172.16.0.68 当前数据库用户
~tenant_id / ~create_time / ~create_by 等 表字段枚举
~2025-12-23 13:1... 用户创建时间等数据分片
~$2a$10$... 密码哈希分片(敏感)

另有 SQL 探测 information_schema / table_schema='hzdyjs_xg' 的记录,表明已进入库表枚举阶段。

完整敏感哈希与用户明细不在正文展开;原始摘录见同目录附件。


5. 典型攻击链路(日志还原)

POST /auth/register
  → selectRegisterEnabled(tenantId)  // 参数含恶意 tenantId
    → 查询 sys_config(config_key=sys.account.registerUser)
      → 多租户插件拼接: AND tenant_id = '<恶意内容>'
        → extractvalue(...) 报错回显
          → 泄露 version / user() / database / 表字段 / 业务数据分片

该链路与 Word 报告 Burp 截图、成果描述(root 权限判定、用户数据拖取、初始密码配置等)一致。


6. 附件清单(本目录)

目录:问题整改/攻击日志摘录/

文件 内容
stats.txt 主日志命中统计与时间分布
primary-xpath-context.txt 首批 XPATH 上下文(含 register + root)
primary-extract-sql-samples.txt 被注入的 SQL 样本
primary-register-hits.txt /auth/register 异常样本
primary-root-leaks.txt root@172.16.0.68 泄露样本
primary-sysconfig-hits.txt SysConfigMapper 报错样本
evidence-block-auth-register-root.txt 连续证据块(从版本探测到 root 泄露)

7. 处置建议(日志侧)

  1. 将本摘录作为攻防复盘/整改验收附件归档。
  2. 代码侧已完成 tenantId 白名单与注册接口加固后,需在生产发布后再做一次同类关键字复查(应不再出现 extractvalue/XPATH/tenant_id = '...extractvalue)。
  3. 因日志显示存在密码哈希分片外泄痕迹,建议同步:强制相关账号改密、轮换初始密码与第三方密钥、审计异常登录。

8. 一句话结论

客户日志可证实:2026-09-16 当日存在针对 /auth/register + tenantId 的报错型 SQL 注入,成功回显 root@172.16.0.68,并持续拖取库表元数据与业务数据;与 Word 补充成果报告一致。