一、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、有哪些脚本