AI加持下的SQL注入是怎样的呢?一起来学习吧!
警告: 本文仅在内网靶场环境演示,旨在安全教学。坚决反对任何危害网络安全的行为,由此产生的法律后果由操作者自行承担。
本文以DVWA靶场中的SQL注入为例,借助智能体看看如何进行SQL注入。整个测试过程由AI智能体 Hermes 驱动,它会自动分析请求响应、判断漏洞是否存在,并调用 SQLMap 完成后续攻击。
low 级别
low 级别的注入入口比较直接,但即便面对常规的 URL 参数,Hermes 也会先做环境侦察和会话准备,不会一上来就盲目开跑。

从终端日志可以看到,Hermes 最先发现目标地址返回 302,判断 DVWA 需要登录认证。它随即用默认凭据 admin/password 建立会话,提取 PHPSESSID 和 user_token,再把完整的会话交给 SQLMap 使用。

登录成功后,Hermes 接着检查 sqli 页面响应和当前安全等级。这里出现了一个关键细节:服务端返回的 Cookie 里 security=impossible,说明 DVWA 当前配置的是最高安全级别,SQL 查询被参数化处理,直接注入基本测不出结果。于是 Hermes 尝试用 Cookie 覆盖的方式将安全等级降为 low。

降级完成后,id=1 正常返回 admin 数据,security=low 的 Cookie 生效,注入点被确认存在。Hermes 随即启动 SQLMap 进行自动化注入。

随后 SQLMap 完成了数据拖取和 MD5 哈希爆破。Hermes 还额外检查了数据库账号的权限,确认当前账号是否为 DBA、是否具备文件读写能力,以判断后续能否进一步利用。

从 Hermes 整理的笔记里可以看到,直接拿 DVWA 的原始 URL 去跑 SQLMap,通常会撞上三个固定的坑:登录页本身的 CSRF token 校验、安全等级被设成 impossible、以及 nginx 会丢掉 query string。对应的解决思路也很清晰——登录时带上 user_token、用 Cookie 覆盖安全等级为 low、改用 POST body 传参。
最终确认注入点为 POST 参数 id,类型是 MySQL 时间盲注加 UNION 查询,数据库为 dvwa。不过当前账号 dvwa@localhost 仅具备 USAGE 权限,既不是 DBA 也没有文件权限,所以只能拖库,没法继续往文件读写或写 webshell 的方向深入。

拖库结果拿到了 users 表里的 5 条用户记录,所有 MD5 哈希均被成功破解,包括 admin 的默认口令 password。截图里也给出了完整的复现命令,核心参数是 --cookie="PHPSESSID=xxx;security=low" 配合 --dbms=mysql --technique=U。
high 级别
当设置安全等级为 High 时,DVWA 会通过弹窗的形式让测试者输入参数值,注入的入口也随之发生了变化。

与 low 级别略有不同,这里需要将完整的 HTTP 请求信息发给智能体分析,由它来判断注入点到底落在哪里、攻击路径该怎么走。

Hermes 首先判断这是 DVWA 的盲注 Cookie 型注入页,当前 security=high。它需要确认注入点是在 POST 参数里还是 Cookie 里——因为这个页面的典型逻辑是先把表单值写入 Cookie,再用 Cookie 查库。两条路径都不能放过。

在确认布尔盲注和时间盲注都成立之后,Hermes 将注入点指定为 Cookie 中的 id 参数,启动 SQLMap 进行自动化枚举。由于布尔盲注的请求量比较大,这部分测试被放到后台运行。

最终盲注拖库的结果与 low 级别 UNION 注入完全一致,5 条用户数据完整无截断。整个盲注过程耗时约 4 分钟,期间产生的大量 404 响应其实是布尔盲注的正常 False 特征,并不代表测试出错。
总结
通过这两个示例不难发现,AI 智能体加持下的 SQL 注入测试,核心流程并没有变:先通过请求或源码分析判断注入点是否真实存在,确认后再进入注入与拖库环节。真正的变化在于,Hermes 这类智能体把环境侦察、登录认证、权限判断等繁琐的前置步骤全部自动化了,让测试者可以更专注于注入逻辑本身。
如果你对 SQL 注入或 Web 安全渗透测试感兴趣,云栈社区汇集了大量实战课程与工具教程,值得深入挖掘。