注入技术
选项--technique,可以用来指定SQL注入技术,默认为BEUSTQ。其中,B表示基于布尔盲注,E表示基于错误的盲注,U表示基于联合查询注入,S表示堆叠注入,T表示基于时间盲注,Q表示内联查询注入。
1. 基于布尔盲注的时候,sqlmap通过比较返回页面的不同来判断真假,但有时候一些界面元素会影响sqlmap的判断,那么可以提供一个在原始页面与真条件下的页面中都存在,而在错误页面中不存在的字符串。sqlmap提供了选项--string,用来指定该字符串,即查询值有效时在页面匹配的字符串。例如:
--technique=B --string="hello"
设置在错误页面中存在,而在原始页面中不存在的字符串:
--technique=B --not-string="fail"
2.基于错误的注入是通过输入特定语句触发页面报错。如果触发成功,则网页会包含相关错误信息,帮助用户获取想要的信息,进行判断.
--text-only,用来指定只比较网页的文本内容
--titles,可以设置仅比较网页标题
3.基于时间的盲注是根据时间延迟语句是否执行(即页面返回时间是否延长)来判断注入漏洞存在的可能性.
--time-sec,可以用来设置响应延时的时间,避免慢速网络带来的干扰
4.联合查询注入根据UNION语句注入的结果进行判断。
--union-cols,可以用来指定列数检测范围。
5.堆叠注入(Stacked injection)就是允许用户同时执行多条SQL语句,从而说明目标存在堆叠注入漏洞,但并不是在每一个环境中都可以执行堆叠注入,其可能会受到API或者数据引擎不支持的限制。
例如:
-technique=BS -v 3
6.二阶sql注入,二级SQL注入是指将输入的数据先存储再读取,然后以读取的数据构成SQL查询,