sqlmap新手教程

sqlmap常用命令

--technique=B/E/U/S/T 指定sql注入的类型

B:布尔盲注

E:报错型注入

U:联合查询注入

S:多语句查询注入

T:时间盲注

--dbms 指定数据

如Microsoft Access, Microsoft SQL Server, MimerSQL, MonetDB, MySQL, Oracle, Percona, PostgreSQ

-D 指定数据库

-T 选择表

-C 选择字段

--dbs 列出全部数据库名字

--dump列出字段内容

--current-db 查询当前数据库名

--current-user 检测当前用户

--is-dba检测当前用户是否为管理员


-v 共有0-6级

0:只显示Python的回溯,错误和关键消息。

1:显示信息和警告消息。

2:显示调试消息。

3:有效载荷注入。

4:显示HTTP请求。

5:显示HTTP响应头。

6:显示HTTP响应页面的内容

--tables获取表名

--columns获取字段名

--users列数据库所有用户

--batch 永远不要要求用户输入,使用默认行为

--threads 采用多线程

--risk:风险等级,共有4个,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。

level:共有五个等级,默认为1,在你不确定哪个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。

当使用第5级时,处于测试最高级别,包含的payload最多,测试参数更复杂,会自动破解出cookie、XFF等头部注入,相对应他的速度也比较慢。这里说的速度是完成任务的速度,而非网站的访问速度。

sqlmap使用流程

进入sqlmap的文件夹,按住Ctrl键,然后按住右键,打开终端,输入python sqlmap.py运行sqlmap

输入

python sqlmap.py -u "http://localhost/Less-1/?id=1"

进行扫描

查询出有布尔盲注,报错型注入,时间盲注,联合查询注入

使用报错型注入查询当前连接数据库

查询出数据库名为"security"

指定security数据库查询全部表

指定users表,查询全部字段

接下来查询password字段的全部内容

也可以直接查询出users表的全部内容


POST类型注入

将抓包的内容放到一个txt文件中

然后输入指令

python sqlmap.py -r 1.txt --batch