一、SqlMap—常见的注入方式
1、SQLMAP用于Access数据库注入
2、SQLMAP用于Cookie注入
3、SQLMAP中post注入
4、SQLMAP用于mysql注入
常见SqlMap使用方法:
二、SqlMap—常见参数
1、指定参数进行测试
参数:* 号,和 -p 选项
2、使用 POST 方式提交注入
参数:--data 选项
3、sqlmap 扫描等级(1-5)
当 -level 的参数设定为2或者2以上的时候,sqlmap 会尝试注入 Cookie 参数
当 -level 的参数设定为3或者3以上的时候,sqlmap 会尝试对 User-Agent,referer 进行注入
参数:--level
4、自动执行默认选项
参数:--batch
5、使用代理服务器连接到目标 URL
参数:--proxy
6、自动切换客户端请求头
参数:-random-agent
7、设置测试线程数,默认线程为1
参数:--threads
8、获取表中的数量
参数:--count
9、风险等级,共有四个等级,默认为1会测试大部分语句,2会增加基于事件的测试语句,3会增加 or 语句的 SQL 注入测试。
参数:--risk
三、SqlMap 的测试等级
探测等级
参数:--level
共有五个等级,默认为1,sqlmap 使用的 payload 可以在 xml/payloads.xml 中看到,也可以根据相应的格式添加自己的 payload。
这个参数不仅影响使用哪些 payload 同时也会影响测试的注入点,GET 和 POST 的数据都会测试,HTTP Cookie 在 level 为2的时候就会测试,HTTP User-Agent/Referer 头在 level 为3的时候就会测试。
总之在你不确定哪个 payload 或者参为注入点的时候,为了保证全面性,建议使用高的 level 值。
风险等级
参数:--risk
共有四个测试等级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加 OR 语句的 SQL 注入测试。
在有些时候,例如在 UPDATE 的语句中,注入一个 OR 的测试语句,可能导致更新的整个表,可能造成很大的风险。
测试的语句同样可以在 xml/payloads.xml 中找到,也可以自行添加 payload。
四、SqlMap—系统操作要求
系统操作
--os-shell 产生交互式的操作系统的shell,用来执行cmd命令
1、--os-shell 系统操作的要求
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭
(4)secure_file_priv为空
2、使用 --os-shell 之后会生成两个文件
(1)上传脚本文件
(2)后门文件
五、SqlMap 脚本介绍
1、脚本作用
帮助我们绕过一些 WAF,进行测试
2、脚本目录
Tamper 目录下
3、有哪些脚本