我是学生学习php& mysql开发。我已经在我的计算机内部设置了一个私人实验室(VM)来测试&了解sql注入的工作原理。当事情变得越来越困难时,我使用sqlmap来利用它,然后使用详细模式&来研究它对我的测试应用程序的请求。通过wireshark捕获数据包。我遇到了一个小问题,那就是在sqlmap的URL中指定要测试的参数。
http://localhost/vuln/test.php?feature=music&song=1
我希望sqlmap扫描参数歌曲,所以我尝试了这些解决方案
-u http://localhost/vuln/test.php?feature=music&song=1 --skip feature
-u http://localhost/vuln/test.php? --data="feature=music&song=1" -p song
通过添加和删除引号和等号来尝试不同的变体,不起作用。我甚至尝试将--risk设置为--level达到最大值,但它仍然无法获取最后一个参数。
如果专家可以帮助我解决这个问题,我将非常感激。 谢谢。
答案 0 :(得分:11)
p选项可以按以下方式使用
-u "http://localhost/vuln/test.php?feature=music&song=1" -p song
答案 1 :(得分:3)
我也有这个问题。我认为sqlmap注入了第一个参数。如果输入:
-u http://localhost/vuln/test.php?feature=music&song=1
sqlmap将注入'feature'参数。要使其注入'song'参数,您需要按如下方式重新排序参数:
-u http://localhost/vuln/test.php?song=1&feature=music
别忘了添加'&'每个参数之间。它对我有用。
答案 2 :(得分:3)
您只需将*添加到您要扫描的参数值即可。你试过那个吗?
答案 3 :(得分:1)
我还注意到您可以使用以下方法扫描多个参数:
-u "http://localhost/vuln/test.php?feature=music&song=1" -p 'song,feature'
这将扫描song
参数,然后扫描feature
参数。
如果sqlmap
找到易受攻击的参数,它会询问您是否要继续使用其他参数。
答案 4 :(得分:0)
我已经触发了这类问题。您只需跳过“功能”参数即可。 E.g -u http:// localhost / vuln / test.php?feature = music& song = 1 --skip = feature然后它肯定会开始测试'song'参数。