使用 SQLMAP 指定参数

Posted

技术标签:

【中文标题】使用 SQLMAP 指定参数【英文标题】:Specify parameters with SQLMAP 【发布时间】:2013-03-17 06:32:20 【问题描述】:

我是一名学习 php & mysql 开发的学生。我已经在我的计算机内设置了一个私人实验室 (VM) 来测试和了解 sql 注入的工作原理。当事情变得更难时,我使用 sqlmap 进行利用,然后使用详细模式和通过wireshark 捕获数据包来研究它对我的测试应用程序发出的请求。我遇到了一个小问题,那就是在 sqlmap 的 URL 中指定参数进行测试。

http://localhost/vuln/test.php?feature=music&song=1

我想让 sqlmap 扫描参数 song 所以我尝试了这些解决方案

-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 的最大值,但仍然无法获取最后一个参数。

如果专家能帮助我解决这个问题,我将非常感激。 谢谢。

【问题讨论】:

【参考方案1】:

我也有这个问题。我认为 sqlmap 注入了第一个参数。如果你输入:

-u http://localhost/vuln/test.php?feature=music&song=1

sqlmap 将注入 'feature' 参数。要使其注入“歌曲”参数,您需要重新排序参数,如下所示:

-u http://localhost/vuln/test.php?song=1&feature=music

不要忘记在每个参数之间添加'&'。它对我有用。

【讨论】:

【参考方案2】:

p 选项可以按以下方式使用

-u "http://localhost/vuln/test.php?feature=music&song=1" -p song

【讨论】:

还要注意没有引号的命令不能正常工作。【参考方案3】:

您可以简单地将 * 添加到您要扫描的参数值。你试过那个吗?

【讨论】:

你能举个例子吗? -u localhost/vuln/test.php?feature=music&song=1* 如果是 POST 请求 -u localhost/vuln/test.php --data="feature=music&song=1*" 顺便说一句,您不需要在 sqlmapping POST 请求上使用问号。 test.php 就够了。【参考方案4】:

我已经触发了此类问题。您可以简单地跳过“功能”参数。例如 -u http://localhost/vuln/test.php?feature=music&song=1 --skip=feature 然后它肯定会开始测试'song'参数。

【讨论】:

【参考方案5】:

我还注意到您可以使用此扫描多个参数:

-u "http://localhost/vuln/test.php?feature=music&song=1" -p 'song,feature'

这将扫描song 参数,然后是feature 参数。 如果sqlmap 找到一个易受攻击的参数,它会询问您是否要继续使用其他参数。

【讨论】:

以上是关于使用 SQLMAP 指定参数的主要内容,如果未能解决你的问题,请参考以下文章

Sqlmap入土详解

Sqlmap中代理及其他常用参数

SQLMap使用

SQLMAP深入分析-使用篇(基础使用进阶命令tamper脚本)

SQLMAP深入分析-使用篇(基础使用进阶命令tamper脚本)

SQLMAP深入分析-使用篇(基础使用进阶命令tamper脚本)