SQLMap进阶:参数讲解

1、--level 5:探测等级

  —level 5参数代表需要执行的测试等级为5,一共有5个测试等级1~5,可不加level,不加等级参数默认是1。SQLMap使用的Payload可以在xml/poyloads.xml中看到,也可根据相应的格式添加自己的Payload,使用测试等级5会使用更多的payload,会自动破解出Cookie、XFF等头部注入。level 5运行速度也比较慢。

  这个参数会影响测试注入点,GET和POST的数据都会进行测试,HTTP cookie在level2时就会测试,HTTP User-Agent/Referer头在level 3时就会测试。在不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用高的level值。

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

  该命令用于查看当前账户是否为数据库管理员账户,命令如下,数据返回True则表示是管理员。

  python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --is-dba

   

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

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

  python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --roles
 

4、--referer:HTTP Referer头。

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

如--referer http://www.baidu.com。

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

  假设运行select * from users limit 0,1,语句,如下:

  python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --sql-shell

 

6、--os-cmd、--os-shell:运行任意操作系统命令
  在数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,如果数据库为MySQL、PostgreSQL,SQLMap上传一个二进制库,包含用户自定义的函数sys_exec()和sys_eval(),那么创建的这两个函数就可以执行系统命令。在Microsoft SQL Server中,SQLMap将使用xp_cmdshell存储过程,如果被禁用(在Microsoft SQL Server 2005及以上版本默认被禁制),则SQLMap会重新启用它;如果不存在,会自动创建。
  用--os-shell参数可以模拟一个真实的Shell,输入想执行的命令。当不能执行多语句时(比如PHP或ASP的后端数据库为MySQL),仍然可以使用INTO OUTFILE写进可写目录,创建一个Web后门。--os-shell支持ASP、ASP.NET、JSP和PHP四种语言(要想执行该参数,需要有数据库管理员权限,也就是--is-dba的值要为True)。

7、--file-read:从数据库服务器中读取文件
 该命令用于读取执行文件,当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数,读取文本可以是文本,也可以是二进制文件。

 python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --file-read "C:\Users\yangy\Desktop\1.txt"
8、--file-write --file-dest:上传文件到数据库服务器中
 该命令用于将本地文件传输到服务器上。--file-write用于指定本地文件,--file-dest用于指定上传到服务器的路径。

 python sqlmap.py -u "http://localhost/sqli-labs-master/Less-1/?id=1" --file-write "C:\Users\yangy\Desktop\1.txt" --file-dest "/etc/"

 
posted @ 2022-10-06 12:38  y夏末y  阅读(712)  评论(0编辑  收藏  举报