sqlmap 的 level 和 risk 参数
编辑level 参数
简单说,--level参数决定了sqlmap在检测SQL注入时的“努力程度”。
level 1:默认的level等级,会测试GET和POST请求中的参数。
level 2:除了前面提到的,还会检查cookie里的数据。
level 3:user-agent和referer头部也纳入检测范围。
level 4~5:会尝试各种payloads和边界条件,确保不放过任何潜在的注入点。
risk 参数
与 --level 不同,--risk 参数更像是告诉 sqlmap:“我愿意承担多大的风险来进行这次测试”。
risk 1:安全第一。默认的风险等级,风险几乎为零。
risk 2:除了默认的检测,还会尝试时间型盲注。
risk 3:在风险等级2的基础上,再加上OR类型的布尔型盲注。这种方式在某些情况下可能会导致数据表的所有记录被更新,所以使用时需谨慎。
level和risk参数的区别
虽然 --level 和 --risk 两个参数在某些方面有重叠,但它们各自侧重的方向是不同的。
方向不同:
--level更像是广度上的拓展,而--risk则是深度上的挖掘。场景不同:如果觉得默认的GET和POST参数检测不够,想要找找其它位置的注入点时,可以考虑加
--level等级。如果可以确定某个位置就是存在注入点,或是强烈怀疑某个地方存在注入,但目前的payload覆盖不到,而且愿意承担风险进行深入测试时,可以考虑提升--risk等级。
自定义Payloads和参数选择
除了内置的payloads,sqlmap还支持用户自定义编辑和添加payloads。如果默认的测试方式不起作用,可以根据自己的需要,编写针对性的payloads来进行测试。同时,通过 -p 参数和 --skip 参数,还可以灵活地选择或排除某些参数进行测试,使检测过程更加高效和精准。使用了-p参数时会sqlmap自动忽略--level参数。
参考
- 0
- 1
-
分享