1.–level 5:探测等级。
—level 5 参数代表需要执行的测试等级为5,sqlmap一共有5个测试等级1~5,不加等级参数默认是1。使用测试等级5会使用更多的payload,会自动破解出Cookie、XFF等头部注入。在不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用最高的level值。
2.–is-dba:当前用户是否为管理权限。
该命令用于查看当前账户是否为数据库管理员账户,命令如下,数据返回True则表示是管理员。
py2 sqlmap.py -u "http://192.168.171.128:1235/Less-1/?id=1" --is-dba
3.–roles:列出数据库管理员角色。
该命令用于查看数据库用户的角色。如果当前用户有权限读取包含所有用户的表,输入该命令会列举出每个用户的角色,也可以用-U参数指定想看哪个用户的角色。该命令仅适用于当前数据库是Oracle的时候。
py2 sqlmap.py -u "http://192.168.171.128:1235/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:运行1自定义SQL语句。
py2 sqlmap.py -u "http://192.168.171.128:1235/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),仍然可以使用INTOOUTFILE写进可写目录,创建一个Web后门。- -os-shell支持ASP、ASP.NET、JSP和PHP四种语言(要想执行改参数,需要有数据库管理员权限,也就是- -is-dba的值要为True)。
7.–file-read:从数据库服务器中读取文件。
在特定的数据库下,该参数可以读取文件,可以读取文本也可以是二进制文件。需要当前用户是管理员权限。
py2 sqlmap.py -u "http://192.168.57.128:1235/Less-1/?id=1" --file-read "/etc/1.txt"
8.- -file-write - -file-dest:上传文件到数据库服务器中。
该命令用于将本地文件传输到服务器上。- -file-write用于指定本地文件,- -file-dest用于指定上传到服务器的路径。
py2 sqlmap.py -u "http://192.168.57.128:1235/Less-1/?id=1" --file-write "C:\Users\lenovo\Desktop\1.txt" --file-dest "/etc/"