sqlmap注入时:
1、判断可注入的参数
2、判断可以用那种SQL注入技术来注入
3、识别出哪种数据库
4、根据用户选择,读取哪些数据
sqlmap支持五种不同的注入模式:
1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
4、联合查询注入,可以使用union的情况下的注入
5、堆查询注入,可以同时执行多条语句的执行时的注入
sqlmap注入监测:
如果你想观察sqlmap对一个点是进行了怎样的尝试判断以及读取数据的,可以使用-v参数
共有7个等级,默认为1
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。
注:如果你想看到sqlmap发送的测试payload最好的等级就是3。
sqlmap探测等级:
参数:--level
共有5个等级(默认等级为1)
sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根据相应的格式添加自己的payload。
这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP Cookie在level为2的时候就会测试,HTTPUser-Agent/Referer头在level为3的时候就会测试。
总之在你不确定哪个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。
sqlmap风险等级:
参数:--risk
共有3个等级(默认等级为1)
1、会测试大部分的测试语句
2、会增加基于事件的测试语句sql
3、会增加OR语句的SQL注入测试
在有些时候,例如在UPDATE的语句中,注入一个OR的测试语句,可能导致更新的整个表,可能造成很大的风险
测试的语句同样可以在xml/payloads.xml中找到,你也可以自行添加payload