FastAdmin 是一款基于 ThinkPHP 框架开发的主流 CMS
好几次遇到 FastAdmin 的网站,黑盒测试根本看不到几个页面,更别提寻找漏洞了,而通过下载源码发现了一个有趣的东西。
源码中有一个 api.html
的文件,这个文件记录了网站所有的 api 接口,如上图。
通过这个文件,我们可以快速简单的知道网站 GET or POST 方式与数据库交互的情况,如下图
这时候我们就可以检测下这些交互请求是否存在漏洞了,可以自己构造请求,也可以在线检测的时候 BURP 抓包
第二处
点开模块可以看到很多接口和参数,我们随便找一个测试
比如 api_v1/Common/getSysMsgDetail
我们改成 POST 方式丢 SQLMAP 里面跑跑看
成功注入
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !
除了你说的这个请求有注入漏洞,api.html里那个接口还有漏洞?@Mr.Wu
必须得赞一个
请问我跟着你的方法去sqlmap,也不行,不知道如何下一步了,本地搭建学习的。
@weij老哥,这个方法并不适用于官方最新版,只是在实际渗透过程中遇到这套 CMS 可以尝试下这 2 个方法而已。
所以你本地搭建测试是不行的,如果官方站也能这样搞,那我早提交 通杀0day 了,
我定义为技巧,而不是漏洞,就可想而知了,在实际渗透中,有些二开的 CMS 可以通过 这个技巧尝试寻找漏洞。
并且你注意下,第二处技巧,是使用了一个接口导致的
@Mr.Wu有遇到一个 就是第二步那个提交post包不知道是不是我的问题,我打开那个getSysMsgDetail然后代理burp抓包然后在sqlmap没有检测到(弱弱的表示不太会sql语句这方面,还在自学的小白一枚)
@Mr.Wu可以请教您当时构造的语句吗?小白不会构造呢 谢谢 一直在实验
@weij如果 getSysMsgDetail 存在的话,应该可以注入的
你点击在线测试,BURP抓到的包是GET的,改成POST就行了
@Mr.Wu我现在去试一下 不懂再请教您
@Mr.Wu我在在线测试那里然后抓包是get请求 我改成了post请求再放在sqlmap中跑,还是没能跑出漏洞,可能是这个版本的原因吗?
@weijsqlmap 截图,什么提示
@Mr.Wu您有QQ吗我加您一下 这个评论发表不了图片一直加载
@weij可以发图的,我测试没毛病,QQ不交流探讨技术
@Mr.Wu 查看图片 您看
@weij将
删掉,复制到POST包最下面一行。。。基础知识。。[aru_2],然后sqlmap的参数这样写
@Mr.Wu弱弱我学习了很多我又来了 [aru_61] 查看图片
@weij[aru_6] 先去研究下POST包的结构吧,你包有问题
@Mr.Wu好的
@Mr.Wu 查看图片 真心要哭了点击下方的保存抓到的post包是这样的 然后我丢sqlmap相应改一下参数 还是不行
@Mr.Wu在线测试抓到的GET我改成POST后sqlmap是这样提示的 然后在getSysMsgDetail这个地方也试过了 查看图片