AI 在代码阅读领域无人能及,我们要做的就是如何利用好 AI,借助它的能力来完成我们的工作,突发奇想,能否让 AI 帮我构造漏洞利用的 POC 呢?
首先找一些存在 SQL 注入漏洞的接口,利用 sqlmap 直接能跑出来的,直接放弃,毕竟这么低级的漏洞利用无需 AI 即可直接完成,所以要从中找出无法 sqlmap 直接跑的接口,于是我找了一个案例,可以完美体现 AI 的能力。
首先尝试使用 sqlmap 结合之前分析的几个 tamper 进行 sql 注入检测:
sqlmap -u http://www.xazlsec.cn/news.php?id=26-p id --tamper=space2comment,equaltolike,between --current-db --random-agent
检测显示存在 WAF:
不管它,让它继续检测,发现存在 SQL 注入漏洞,而且是 mysql,如图:
最终结果是漏洞无法利用,大量红色的连接超时(无法继续):
接下来是我们发挥 AI 之力的时候了。
首先访问接口,输入单引号,看看是否报错,毕竟想要 AI 发挥力量,必须有报错信息给到 AI,才能根据相关信息给出解决方案,盲注这种就不太能发挥 AI 之力了,所以访问报错如下:
系统采用的是 PHPMyWind,PHPMyWind 是一款基于 PHP+MySQL 开发,符合 W3C 标准的建站引擎,由于存在报错,可以使用一些以报错方式查询数据的 payload,直接丢给 AI 来给我们生成,比如问 AI:
访问接口:http://www.xazlsec.cn/news.php?id=26‘
面报错:错误信息:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '’ ORDER BY orderid desc' at line 1 Error sql: SELECT * FROM
pmw_infolist
WHERE classid=26’ ORDER BY orderid desc
AI 会根据你提供的信息,进行分析:
随后给出查询数据库信息的相关 Payload:
为了测试漏洞是否存在,选择查询数据库名称来证明,直接复制访问后,如图:
被 PHPMyWind 的内置安全检查给拦截了,无法执行下去,由于 PHPMyWind 是开源程序,所以知道他如何检查的很容易,直接 Github 搜索警告信息就能找到:
阅读源码非我所擅长,那么就交给 AI 来完成,直接复制 CheckSql 函数发给 AI:
它会对你发给它的代码进行分析,接下来告诉它我们的目的,直接将被拦截的接口请求发给 AI,他就知道要干嘛,你看:
不过这个时候,它没有给出我想要的可以绕过检查的 payload,那么需要再给它提供一条指令:
基于检查函数,如何变换以绕过检查并帮我输出可用 payload
当我们把 AI 提供的 payload 填入参数后,发现还是报错,但不是被拦截的报错:
其实是 SQL 语句没有拼接好,我们直接把 payload 中的 and、空格、单引号都去掉,然后把数字 26 替换,最终 url:
http://www.xazlsec.cn/news.php?id=extractvalue(1,concat(0x7e,database(),0x7e))
尝试后发现数据库名已经出现:
到此达成所愿,从一个无法直接 sqlmap 检测出的漏洞,通过 AI 之力,变成了一个可以查询数据的漏洞,到此提交补天就可以了,又是 15 块到手,哈哈!
原文始发于微信公众号(Khan安全团队):AI 帮我绕 WAF 之实战案例
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论