sqlmap的level和risk等级定义
sqlmap 使用的 payloads 是直接在文本文件 xml/payloads/ 目录下 payloads 载入的 , 会根据 risk 和 level 定义不同的等级,以方便在实际测试挑选不同的 payload 进行测试。
sqlmap 中 level 等级定义
从 sqlmap.conf 中可以看到 level 共分为 5 个等级 (1-5),默认等级是 1。
[Detection]
# Level of tests to perform.
# The higher the value is, the higher the number of HTTP(s) requests are
# as well as the better chances to detect a tricky SQL injection.
# Valid: Integer between 1 and 5
# Default: 1
level = 1
1. 检测位置的区分
不同的 level 等级会检测 sql 注入位置也不同。
level>=1即检测 GET 和 POST 参数(默认检测)level>=2即加入检测 HTTP Cookielevel>=3即加入检测 HTTP User-Agent 和 HTTP Referer 两个头部字段level>=5即加入检测 HOST 字段
2. payload 的 level 区分(待确认)
在 sqlmap/data/xml/payloads/ 不同的 payload 和 ``sqlmap/data/xml/boundaries.xml`测试边界符号均有不同的 level 等级,主要的区分方式是按照 requests 请求包数量也即需要消耗的时间来判断的,区分如下
- level1 测试请求包数量<100
- level2 测试请求包数量在 100-200 之间
- level3 测试请求包数量在 200-500 之间
- level4 测试请求包数量在 500-1000 之间
- levle5 测试请求包数量在 > 1000,即需要花费大量的时间。
sqlmap 中 risk 等级定义
从 sqlmap.conf 中可以看到 risk 共分为 3 个等级 (1-3),默认等级是 3
[Detection]
# Risk of tests to perform.
# Note: boolean-based blind SQL injection tests with AND are considered
# risk 1, with OR are considered risk 3.
# Valid: Integer between 1 and 3
# Default: 1
risk = 1
1. payload 的 risk 等级区分
参考链接
- https://github.com/sqlmapproject/sqlmap/wiki/Usage#level