sqlmap常用参数汇总

目录

 

SQLMAP

观察数据

获取目标方式

直接连接到数据库

目标url

从文本中获取多个目标url

从文件中加载http请求

请求方式

http 数据

HTTP cookie头

HTTP User-Agent头

HTTP Host头

HTTP Referer头

设定超时时间

注入技术

设定注入方式

设定延迟注入时间

设定UNION查询字段数

设定UNION查询使用的字符

列数据

标志

用户

当前数据库

列数据库管理用户

列出数据库系统的数据库

列举数据库表

列举数据库表中的字段

获取表中数据个数

获取整个表的数据

指定字段,表,数据库

其他

刷新session文件


SQLMAP

观察数据

参数 -v

共有七个等级,默认为1:

-v 0 只显示python错误以及严重的信息。

-v 1 同时显示基本信息和警告信息。(默认)

-v 2 同时显示debug信息。

-v 3 同时显示注入的payload。

-v 4 同时显示HTTP请求。

-v 5 同时显示HTTP响应头。

-v 6 同时显示HTTP响应页面。

如果你想看到sqlmap发送的测试payload最好的等级就是3。

 

获取目标方式

直接连接到数据库

参数 -d

例如 sqlmap -d "mysql://root:[email protected]:3306/test"

目标url

参数 -u ,-url

例如 sqlmap -u "http:192.168.1.200/index.php?id=1"

从文本中获取多个目标url

参数 -m

url 会保存在文档中,sqlmap会一个个检测

从文件中加载http请求

参数 -r

如果目标是post请求,可以直接将其请求导入到文件中,然后-r 调用这个文件

 

请求方式

http 数据

参数 --data

把数据以post的方式提交

例如 sqlmap -u "http:192.168.1.200/index.php" --data="id=1"

HTTP cookie头

参数 --cookie

当web应用需要登录的时候,需要cookie值做验证

HTTP User-Agent头

参数 --user-agent,--random-agent

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

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

可以使用--user-anget参数来修改,同时也可以使用--random-agnet参数来随机的从./txt/user-agents.txt中获取。

当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。

HTTP Host头

参数 --host

手动设置HTTPHost的值

HTTP Referer头

参数 --referer

可以伪造http请求头中的referer字段

当--level参数设定为3或者3以上的时候,会尝试对referer进行注入

设定超时时间

参数 --timeout

可以设定一个HPPT请求超过多久会被判定为超时,以秒为单位,默认30秒

 

注入技术

设定注入方式

参数 --technique

这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式。

B:布尔型注入

E:报错型注入

U:可联合查询注入

S:可多语句查询注入

T:基于时间延迟注入

设定延迟注入时间

参数 --time-sec

默认为5秒

设定UNION查询字段数

参数 --union-cols

默认情况下sqlmap测试UNION查询注入会测试1-10个字段数,当--level 为5的时候会增加测试到50个字段,如10-12,是测试10到12个字段数

设定UNION查询使用的字符

参数 --union-char

默认情况下sqlmap针对UNION查询的注入会使用NULL字符,但是有些情况下会造成页面返回失败,而使用一个随机整数是成功的,这时你可以使用--union-char指定UNION查询的字符

 

列数据

标志

参数 -b,--banner

大多数的数据库系统有一个函数可以返回数据库的版本号,通常这个函数是version()或者变量@@version这主要取决于是什么数据库

用户

参数 --current-user

在大多数数据库中可以获取管理数据的用户

当前数据库

参数 --current-db

返回当前连接的数据库

列数据库管理用户

参数 --users

当前用户有权限读取所有用户时,就可列出

列出数据库系统的数据库

参数 --dbs

当前用户有权限读取包含所有数据库列表信息时,就可列出所有数据库

列举数据库表

参数 --tables

如果不提供-D参数来指定一个数据库,那么sqlmap会列举所有数据库的所有表

列举数据库表中的字段

参数 --columns

如果没有-D参数指定数据库时,默认使用当前数据库

获取表中数据个数

参数 --count

有时候用户只想获取数据表中的个数而不是具体内容,那么可以该参数

获取整个表的数据

参数 --dump

使用-T -D 参数指定想要获取哪个数据库的哪个表中的内容,没有-D参数默认当前数据库

指定字段,表,数据库

参数 -C -T -D

-C 指定字段

-T 指定表

-D 指定数据库

 

其他

刷新session文件

参数 --flush-session

如果不想用之前缓存这个目标的session文件,可以使用这个参数。 会清空之前的session,重新测试该目标。

 

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/107394504