SQLMAP进阶:参数讲解
发布日期:2021-06-30 17:41:14 浏览次数:2 分类:技术文章

本文共 1547 字,大约阅读时间需要 5 分钟。

1. --level 5: 探测等级

参数–level 5 指需要执行的测试等级,一共有5个等级(1~5),可不加level,默认是1.sqlmap使用的Payload可以在xml/payload.xml中 看到,也可以根据相应的格式添加自己的Payload,其中5级包含的Payload最多,会自动破解出cookie、XFF等头注入。当然,level5的运行速度也比较慢 。

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

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

该命令用于查看当前是否为数据库管理员账户,如下所示,在本案中输入该命令,会返回True
在这里插入图片描述

python sqlmap.py -u http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --is-dba

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

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

4. --referer:HTTP Referer头

sqlmap可以在请求中伪造HTTP中的referer,当–level参数设定为3或3以上时,会尝试对referer注入。可以使用referer命令来欺骗,如–referer http://www,baidu.com

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

该命令执行的sql语句,如下所示,假设执行select *from users limit 0,1 语句

python sqlmap.py -u http://127.0.0.1/Sqli_Edited_Version-master/sqlilabs/Less-1/?id=1 --sql-shell

输入上面的语句会跳出sql-shell的执行命令;此时键入select *from users limit 0,1 执行命令

在这里插入图片描述

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

在数据库为MySQL、PostgreSQL或Microsoft SQL Sever,并且当前用户有权限使用特定的函数时,如果数据库为MySQL,PostgreSQL,SQLMAP上传一个二进制库,包含用户自定义的函数sys_exec()和sys_eval(),那么创建的这两个函数就可以执行系统命令。在Microsoft SQL Sever中,SQLMAP将使用xp_cmdshell存储过程,如果被禁用(在Microsoft SQL Sever2005及以上版本默认被禁制),则SQLMAP会重新启用它,如果不存在,会自动创建。

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

该命令用于读取执行文件,当数据库为MySQL、PostgreSQL或Microsoft SQL Sever,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。

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

该命令用于写入本地文件到服务器中,当数据库为MYSQL、PostgreSQL或Microsoft SQL Sever,并且当前用户有权限使用特定的函数时,读取的文件可以是文本,也可以是二进制文件。

转载地址:https://leo-max.blog.csdn.net/article/details/104838355 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HTTP请求流程相关
下一篇:XSS基础与进阶

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月28日 15时41分30秒