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/"
标签:SQLMap,http,进阶,level,--,数据库,file,讲解 From: https://www.cnblogs.com/yy-123/p/16757353.html