SQLMap 参数 level 与 risk 区别
level (探测等级)
level
选项用于指定 sqlmap
测试的深度,范围从1到5。level
值越高,sqlmap
会尝试更多的 Payload,但同时也会增加请求的数量和测试时间
- Level 1:默认等级,会测试一些基本的 Payload,比如单引号
'
和双引号"
。这适用于快速探测,通常不会对应用造成太大影响 - Level 2:会增加基于时间的 Payload,用于测试盲注
- Level 3:会测试
AND/OR
布尔盲注以及一些常见的报错注入 Payload - Level 4:会测试一些不常见的、复杂的 Payload,例如基于
UNION
查询的 Payload - Level 5:最高等级,会测试所有的 Payload,包括一些非常规的、可能导致应用崩溃的 Payload
总结:level
决定了 sqlmap
攻击的深度和复杂性,它告诉 sqlmap
应该使用多少种不同的技术来探测漏洞
risk (危险等级)
risk
选项用于指定 sqlmap
执行 Payload 的危险程度,范围从1到3。risk
值越高,sqlmap
会使用一些可能对数据库造成修改或破坏的 Payload
- Risk 1:默认等级,
sqlmap
只会使用那些不会对数据库数据造成修改的 Payload。例如,UNION
查询、布尔盲注等 - Risk 2:会增加一些可能造成轻微数据修改的 Payload,比如基于
GET
或POST
参数的更新语句 - Risk 3:最高等级,会尝试可能对数据库造成重大破坏的 Payload,例如
DELETE
、INSERT
和UPDATE
等。在没有明确授权的情况下,不建议使用这个等级
总结:risk
决定了 sqlmap
攻击的潜在危害性,它告诉 sqlmap
可以执行多“危险”的操作
特征 | level (探测等级) | risk (危险等级) |
---|---|---|
关注点 | 攻击深度和技术类型 | 攻击危险性和破坏程度 |
决定因素 | 攻击手法(布尔、时间、报错、联合等) | 攻击操作(查询、更新、删除等) |
默认值 | 1 | 1 |
常用组合 | level 3 或更高 | risk 2 或更高 |