每当我使用 - sqlmap -r sql.txt --dbms=MYSQL --dbs --batch 显示以下结果。
└─# sqlmap -r sql.txt --dbms=MYSQL --dbs --batch
[!] 法律免责声明:未经双方事先同意,使用 sqlmap 攻击目标是非法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发人员不承担任何责任,也不对因该程序造成的任何误用或损坏负责
[*] 开始 @ 09:45:06 /2021-09-25/
[INFO] 解析来自 'sql.txt' 的 HTTP 请求
[CRITICAL] 指定文件 'sql.txt' 不包含可用的 HTTP 请求(带参数)
[*] 结束于 09:45:06 /2021-09-25/
但是当我用 cat 命令看到 sql.txt 文件的内容时,什么也没显示。
┌──(root💀kali)-[~/Desktop/sqlmap]
└─# ls -la
total 72
drwxr-xr-x 4 root root 4096 Sep 25 08:51 .
drwxr-xr-x 4 root root 4096 Sep 5 18:34 ..
drwxr-xr-x 2 root root 4096 Apr 20 14:18 docs
-rw-r--r-- 1 root root 47756 Jun 11 09:09 map.txt
-rw-r--r-- 1 root root 335 Jun 3 17:27 new.txt
drwxr-xr-x 11 root root 4096 Sep 25 08:49 sqlmap
-rw-r--r-- 1 root root 554 Sep 25 08:34 sql.txt
┌──(root💀kali)-[~/Desktop/sqlmap]
└─# cat sql.txt
┌──(root💀kali)-[~/Desktop/sqlmap]
└─#
然后,如果我尝试使用 nano 命令查看 sql.txt 的内容,那么它会显示所有文件数据。
┌──(root💀kali)-[~/Desktop/sqlmap]
└─# nano sql.txt
POST /doLogin HTTP/1.1
Host: demo.testfire.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 35
Origin: http://demo.testfire.net
Connection: close
Referer: http://demo.testfire.net/login.jsp
Cookie: JSESSIONID=D5B396CF6FE3B67C4DF520346B5C889E
Upgrade-Insecure-Requests: 1
uid=test&passw=test&btnSubmit=Login
我无法将 SQLMap 与 -r 一起使用,请帮助我
在 github 上深入研究 sqlmap 的源代码后,我发现输入文件存在一种“偏见”,即被 burpsuite 或 webscarab 拦截的 http 请求的原始转储。任何其他文件(例如从调试控制台中看到的 Web 浏览器的 http 流量手动复制粘贴)在某种程度上是不正确的。
所以,我建议的解决方法是启动 burp 套件(我还没有使用过 webscarab,所以不能评论它),捕获你打算分析的请求的 http 流量,复制粘贴原始 http 流量来自burpsuite,到一个文本文件中,并使用 -r 开关将该文件作为输入提供给 sqlmap。
只需右键单击入侵者或中继器中的请求窗口部分,无论您当前位于哪个,然后单击“保存文件”,然后将其另存为文本文件。然后像您一样使用“-r”标志将该文件用作输入。 我认为问题与编码有关,因为手动复制粘贴会影响行尾、回车符。这可能使它们与 sqlmap 不兼容。