二、SQLMAP进阶
二、SQLMAP进阶
1、--level 5:探测等级
参数--level 5 指需要执行的测试等级,一共有5个等级(1-5),可不加level,默认是1。SQLMAP使用的Payload 可以在xml/payloads.xml中看到,也可以根据相应的格式添加自己的payload,其中5级包含的payload最多,会自动破解出cookie、XFF等头部注入。当然,level 5 的运行速度也比较慢。这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie 在level 为2时就会测试,HTTP User-Agent/Referer 头在level为3时就会测试。总之,在不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用高的level值。
2、--is-dba:当前用户是否为管理权限
该命令用于查看当前账户是否为数据库管理员账户。
sqlmap.py -u 网址 --is-dba
3、--roles:列出数据库管理员角色
该命令用于查看数据库用户的角色。如果当前用户有权限的读取包含所有用户的表,输入该命令会列举出每个用户的角色,也可以用-U 参数指定想看哪个用户的角色。该命令适用于当前数据库是Oracle的时候。
4、--referer:HTTP Referer头
SQLMAP可以在请求中伪造HTTP中的referer,当--level参数设定为3或3以上时,会尝试对referer注入。可以使用referer命令来欺骗,如--referer 网址。
5、--sql-shell:运行自定义SQL语句
该命令用于执行指定的SQL语句
sqlmap.py -u 网址 --sql-shell
6、--os-cmd,--os-shell:运行任意操作系统命令
在数据库为mysql,postgresql或microsoft sql sever,并且当前用户有权限使用特定的函数时,如果数据库为mysql、postgresql,SQLMAP上传一个二进制库,包含用户自定义的函数sys-exec()和says-eval(),那么创建的这两个函数就可以执行系统命令。在microsoft sql sever 中,sqlmap将使用xp-cmdshell存储过程,如果被禁用(在microsoft sql server 2005及以上版本默认被禁制),则sqlmap会重新启用它,如果不存在,会自动创建。
用--os-shell参数可以模拟一个真实的shell,输入想执行的命令。当不能执行语句时(比如php或asp的后端数据库为mysql),仍然可以使用INTO OUFLE写进可写目录,创建一个web后门。--os-shell支持ASP、asp.net、jsp和php四种语言(要想执行改参数,需要有数据库管理员权限,也就是--is-dba的值要为true)。
7、--file-read:从数据库服务器中读取文件
该命令用于读取执行文件,当数据库为mysql、postgresql或microsoft sql server,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。
sqlmap.py -u 网址 --file-read 文件名 -v 1
8、--file-write --file-dest:上传文件到数据库服务器中
该命令用于写入本地文件到服务器中,当数据库为mysql、postgresql或microsoft sql server,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。
sqlmap.py -u 网址 --file-write/文件 --file-dest 文件目录 -v 1

浙公网安备 33010602011771号