sqlmap 的 level 和 risk 参数
编辑
3
2024-01-27
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
-
分享