用法-侦测-sqlmap用户手册-测试-IT技术博客

侦测

这些选项可用于自定义检测阶段。


水平

选项:--level


此选项需要一个参数,该参数指定要执行的测试级别。有五个级别。默认值是1,其中执行有限数量的测试(请求)。反之亦然,级别5将详细测试大量有效负载和边界(如在SQL有效负载前缀和后缀对中)。 sqlmap使用的有效负载在文本文件xml / payloads.xml中指定。按照文件顶部的说明进行操作,如果sqlmap错过了注入,则您也应该可以添加自己的有效负载进行测试!


此选项不仅会影响尝试使用哪些有效负载sqlmap,还会影响检查中采用的注入点:始终测试GET和POST参数,从2级测试HTTP cookie头值,并从2级测试HTTP User-Agent / Referer头的值3级


总而言之,检测SQL注入越难,则必须将--level设置得越高。


强烈建议在向邮件列表报告sqlmap无法检测到某个注入点之前,提高此值。


风险

选项:--risk


此选项需要一个参数,该参数指定执行测试的风险。存在三个风险值。默认值为1,对于大多数SQL注入点而言,该值是无害的。风险值2将针对基于重查询时间的SQL注入的测试添加到默认级别,而值3还添加基于OR的SQL注入测试。


在某些情况下,例如在UPDATE语句中进行SQL注入,注入基于OR的有效负载可能导致表中所有条目的更新,这肯定不是攻击者想要的。由于这个原因和其他原因,引入了该选项:用户可以控制要测试哪些有效负载,用户可以任意选择还使用潜在危险的负载。根据前面的选项,sqlmap使用的有效负载在文本文件xml / payloads.xml中指定,您可以自由编辑和添加自己的负载。


页面比较

选项:--string,--not-string,--regexp和--code


默认情况下,通过将注入的请求页面内容与原始未注入的页面内容进行比较,将True查询与False(基于布尔的盲SQL注入漏洞背后的粗略概念)区分开。这个概念并非总是可行,因为有时页面内容在每次刷新时都会更改,甚至不注入任何内容,例如,当页面具有计数器,动态广告横幅或动态呈现的HTML的任何其他部分时,不仅可能随时间变化结果是用户的输入。为了绕过此限制,sqlmap会努力识别响应正文的这些摘要并进行相应处理。有时它可能会失败,这就是为什么用户可以提供一个字符串(--string选项),该字符串应该出现在原始页面上(虽然不是必需的),也应该出现在所有True注入查询页面上,但它不会出现在错误的。用户可以提供正则表达式(--regexp选项)来代替静态字符串。或者,用户可以提供一个字符串(--not-string选项),该字符串不在原始页面上显示,也不在所有True注入查询页面上显示,而是始终显示在False页面上。


这样的数据对于用户来说很容易检索,只需尝试将无效值注入到受影响的参数中,然后手动将原始(未注入)页面内容与注入的错误页面内容进行比较。这样,区分将基于字符串存在或正则表达式匹配。


如果用户知道可以使用HTTP代码来区分True查询与False(例如,对于True为200,对于False为401),则他可以将该信息提供给sqlmap(例如--code = 200)。


开关:--text-only和--titles


如果用户知道可以使用HTML标题来区分True查询和False(例如,欢迎使用True,禁止使用False),则可以使用switch --titles打开基于标题的比较。


如果HTTP响应的主体中包含大量活动内容(例如脚本,嵌入等),则可以仅针对其文本内容过滤页面(切换--text-only)。这样,在很多情况下,您可以自动调整检测引擎。


标签: sqlmap教程sqlmapsqlmap手册用户手册sqlmap用户手册