SQLmap注入

sqlmap注入

1.指定注入方式

-technique B

注入方式:

B: 基于Boolean的盲注(Boolean based blind)
Q: 内联查询(inlin queries)
T: 基于时间的盲注(time based blind);可用 --time-sec 设定延时时间,默认为5s
U: 联合查询(union query based)
E: 错误(error based)
S: 栈查询(stack queries)

2.指定注入参数

-p id

有时level值高的情况下有个别参数不想测试可以使用--skip参数:

--skip='user-agent.referer'

3.指定编码

--charset=utf8-big5
--hex

4.快速定位重要数据表:

--search,可以用来搜索列、表或数据库名称。

--search -D:搜索某个数据库
--search -T:搜索某个表名
--search -C:搜索某个字段名

5.指定频率

1.指定线程:

最大是10

--threads 10

2.指定两个请求的间隔:

--delay 0.5

可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。

3.设定超时时间

--timeout

可以设定一个HTTP(S)请求超过多久判定为超时,10.5表示10.5秒,默认是30秒。

4.设定重连次数

--retries

当HTTP(S)超时时,可以设定重新尝试连接次数,默认是3次。

6.交互式执行sql语句

--sql-shell

7.交互式写webshell

可以指定web路径或进行路径的爆破:

--os-shell
--os-cmd

8.level与risk

--level:共有五个等级,默认为1;Http Cookie在level为2的时候会测试,level为3的时候会进行UA的测试

--risk:共有三个风险等级

9.显示注入详细信息

-v 1

共有七个等级:

  • 1:只显示python错误以及严重的信息。

  • 2:同时显示基本信息和警告信息。(默认)

  • 3:同时显示debug信息。

  • 4:同时显示注入的payload。*

  • 5:同时显示HTTP请求。

  • 6:同时显示HTTP响应头。

  • 7:同时显示HTTP响应页面。

10.从google的搜索结果中进行注入

python sqlmap.py -g "inurl:\".php?id=1\""

11.设定UA头

--user-agent
--random-agent

默认情况下sqlmap的HTTP请求头中User-Agent值是:

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)

12.查看banner信息

--banner

13.用户、密码、管理员、权限查询

1.查看当前用户并判断是否为管理权限

--is-dba

2.列出数据库管理员角色

--roles

3.枚举用户名和密码:

--users             枚举数据库管理系统用户
--passwords         枚举数据库管理系统用户密码哈希

14.枚举数据库数据信息

--current-user 获取当前用户
--current-db   获取数据库管理系统当前数据库
--dbs                 枚举数据库管理系统数据库
--tables           枚举DBMS数据库中的表
--columns           枚举DBMS数据库表列
-D             要进行枚举的指定数据库名
-T             要进行枚举的指定表名
-C             要进行枚举的指定列名
--dump         枚举所有数据并存储

15.文件操作

--file-read=RFILE     指定需要读取的目标文件
--file-write=WFILE    指定需要上传的本地文件
--file-dest=DFILE     指定写入文件的绝对路径,配合 --file-write 一起使用

16.获取表的名字和数据数量

--count -D testdb

17.识别WAF/IPS/IDS

--check-waf
--identify-waf

18.忽略保存的查询,重新查询

--flush-session 重新检测注入、查询
--fresh-queries 重新查询

19.计算注入剩余时间

--eta

20.使用sqlmap提供的默认值运行

--batch

21.忽略指定状态码

sqlmap碰到状态码500会直接退出,可以让它继续执行:

--ignore-code=500

22.指定dump输出路径

--output-dir=

23.https请求

--force-ssl

24.指定注入点

可以用*代表这里存在注入点,例如当下面username处存在注入:

Cookie:shop=username=abc

可以将abc替换为*,再用sqlmap测试:

Cookie:shop=username=*