我想知道sqlmap是否能够测试headers是否存在SQL漏洞。我知道,如果我使用--level>=3,那么它将自动检查用户代理和引用者headers,但我也想检查其他人。
我已经找到了--header选项,我可以使用这些选项指定将在请求中发送的头,但我不知道sqlmap是否会实际测试这些标头。假设我想添加一个标题:
CustomHeader: testing发送到http请求。我会将--headers="CustomHeader: testing"添加到sqlmap命令行,然后我可以特别告诉sqlmap使用-p选项测试CustomHeader HTTP头中的CustomHeader漏洞,如下所示:
Testable parameter(s)
Switch: -p
By default sqlmap tests all GET parameters and POST parameters. When the value of --level is >= 2 it tests also HTTP Cookie header values. When this value is >= 3 it tests also HTTP User-Agent and HTTP Referer header value for SQL injections. It is however possible to manually specify a comma-separated list of parameter(s) that you want sqlmap to test. This will bypass the dependence on the value of --level too.
For instance, to test for GET parameter id and for HTTP User-Agent only, provide -p id,user-agent.所以命令可以是:
-p customheader有人知道如何使用sqlmap实际测试自定义headers吗?
发布于 2013-01-22 19:03:52
下面是./sqlmap/lib/controller.py中定义--level行为的代码片段:

它似乎是自定义的支持标头注入。 (就在一周前--也是这样做的):
现在可以这样做:
--user-agent="sqlmap*"or--referer="target.com*"or--headers="User-Agent:test*\nReferer:bla"or--headers="Foo:bar*"或(用星号字符*在请求文件中标记):-r request.txtor。
发布于 2013-01-22 18:31:33
据我了解,SQLmap目前只支持三个头字段的测试。从手册中:
测试提供了获取参数、POST参数、HTTP标头值、HTTP用户代理报头值和HTTP引用标头值,以识别和利用SQL注入漏洞。还可以指定要测试的特定参数(S)的逗号分隔列表。
那么,UserAgent,厨师和推荐人。您可以使用headers=HEADERS选项设置自定义标头字段,但是在我的测试中,这并没有测试给定的注入字段,而是只发送了提供的值。
我最近编写了一个工具来审计所有header字段,但是与SQLmap相比,它预先形成的测试数量是微不足道的。目前,它只是测试基于错误的SQLi,但也会在标头字段中抛出一些空字节。但是,它将测试所有头字段,包括任何自定义字段。如果您愿意检查它,您可以在这里找到代码:
https://github.com/nopslip/pyLobster
此外,我相信这个工具可能会提供一些你正在寻找的功能。
http://code.google.com/p/enema/
我不认为它目前将测试所有的标题字段,但我不是100%确定这一点。我的猜测是,灌肠公司的SQLi测试也比使用pyLobster要广泛得多。
https://security.stackexchange.com/questions/29515
复制相似问题