二、SQLMAP进阶

二、SQLMAP进阶

1--level 5:探测等级

参数--level 5 指需要执行的测试等级,一共有5个等级(1-5),可不加level,默认是1SQLMAP使用的Payload 可以在xml/payloads.xml中看到,也可以根据相应的格式添加自己的payload,其中5级包含的payload最多,会自动破解出cookieXFF等头部注入。当然,level 5 的运行速度也比较慢。这个参数会影响测试的注入点,GETPOST的数据都会进行测试,HTTP cookie level 2时就会测试,HTTP User-Agent/Referer 头在level3时就会测试。总之,在不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用高的level值。

2--is-dba:当前用户是否为管理权限

该命令用于查看当前账户是否为数据库管理员账户。

sqlmap.py -u 网址 --is-dba

3--roles:列出数据库管理员角色

该命令用于查看数据库用户的角色。如果当前用户有权限的读取包含所有用户的表,输入该命令会列举出每个用户的角色,也可以用-U 参数指定想看哪个用户的角色。该命令适用于当前数据库是Oracle的时候。

4--referer:HTTP Referer

SQLMAP可以在请求中伪造HTTP中的referer,当--level参数设定为33以上时,会尝试对referer注入。可以使用referer命令来欺骗,如--referer 网址。

5--sql-shell:运行自定义SQL语句

该命令用于执行指定的SQL语句

sqlmap.py -u 网址 --sql-shell

6--os-cmd--os-shell:运行任意操作系统命令

在数据库为mysqlpostgresqlmicrosoft sql sever,并且当前用户有权限使用特定的函数时,如果数据库为mysqlpostgresqlSQLMAP上传一个二进制库,包含用户自定义的函数sys-exec()和says-eval(),那么创建的这两个函数就可以执行系统命令。在microsoft sql sever 中,sqlmap将使用xp-cmdshell存储过程,如果被禁用(在microsoft sql server 2005及以上版本默认被禁制),则sqlmap会重新启用它,如果不存在,会自动创建。

--os-shell参数可以模拟一个真实的shell,输入想执行的命令。当不能执行语句时(比如phpasp的后端数据库为mysql),仍然可以使用INTO OUFLE写进可写目录,创建一个web后门。--os-shell支持ASPasp.netjspphp四种语言(要想执行改参数,需要有数据库管理员权限,也就是--is-dba的值要为true)。

7--file-read:从数据库服务器中读取文件

该命令用于读取执行文件,当数据库为mysqlpostgresqlmicrosoft sql server,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。

sqlmap.py -u 网址 --file-read 文件名 -v 1

8--file-write   --file-dest:上传文件到数据库服务器中

该命令用于写入本地文件到服务器中,当数据库为mysqlpostgresqlmicrosoft sql server,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。

sqlmap.py -u 网址 --file-write/文件 --file-dest 文件目录 -v 1 
posted @ 2020-08-28 20:19  只配吃三碗饭  阅读(838)  评论(0)    收藏  举报