MENU

OOB注入

August 11, 2021 • Read: 787 • Web

OOB注入

定义:OOB注入是指利用带外信道Out-Of-Band 携带信息的一种方式。普通的sql都是从服务器获取信息,然而oob注入是利用dns解析这个侧信道进行从中获取信息。
带外通道技术(OOB)让攻击者能够通过另一种方式来确认和利用没有直接回显的漏洞。
这一类漏洞中,攻击者无法通过恶意请求直接在响应包中看到漏洞的输出结果。
带外通道技术通常需要脆弱的实体来生成带外的TCP/UDP/ICMP请求,然后,攻击者可以通过这个请求来提取数据。

OOB注入与其他注入的区别:

1.png

利用条件

1.脆弱的系统(mysql的OOB注入需要的secure_file_priv的值为空)

查看值:show variables like '%secure%';

2.使用的是Windows的服务器

相关知识

  1. Windows上的UNC路径——可以用于共享文件夹
    UNC( Universal Naming Convention)/通用命名规则

Windows主机默认存在, Linux主机默认不存在。格式
\servernamesharename,其中 servername是服务器名。 sharename是共享资源的名称。
我们平时使用的打印机、网络共享文件夹时,都会用到UNC填写地址。并且当我们在使用UNC路径时,会对域名进行DNS查询。

  1. 泛域名解析:可以使用通配符的方式将次级域名都解析到同一个域名,如*.example.com这样的通配符可以解析 xxx.example.com。
  2. mysql中的load_file()函数,该函数可以读取服务器上的文件。
  3. dns服务器,可以解析发来的请求。
  4. 利用上述的知识点,当我们读取服务器上的一个文件时候,我们需要写一个绝对的地址,然后就会用到UNC,把mysql查询的信息拼接到三级域名中,然后一旦执行看load_file这个函数,那么便会发生dns请求,使用dns服务器捕获该请求便可以获取到想要的信息。

环境搭建及准备

  1. 搭建好一台dns服务器,或者使用开放的dns平台ceye平台
  2. 在一台Windows服务器上布置好mySQL服务,并测试好unc路径是否能正常解析使用
测试UNC路径
  1. 测试127.0.0.1是否解析正确 2.png
  2. 测试域名形式localhost是否解析正确 3.png
  3. 测试ip形式是否解析正确 4.png
布置mysql服务
  1. 使用命令show variables like '%secure%';查看是否有任意位置文件读取权限
  2. 如果显示NULL,则表示不被允许,则到my.ini中的mysqld中添加secure_file_priv=。并且需要重启mysql服务,在win环境下不能重启,只能停止后在启动
    5.png
  3. 可以配置mysql远程登录,这样比较方便在电脑本机测试
步骤
  1. 选择mysql库
  2. grant all privileges on . to root@'%' identified by 'password';
  3. flush privileges; //为了刷新缓存
  4. 远程登录命令 mysql -h ip地址 -uroot -p
  5. 6.png

OOB注入复现

使用load_file和concat拼凑出SQL语句,将要获取的数据库名称通过泛解析带出来

7.png
8.png

Last Modified: August 20, 2021
Leave a Comment

本站总访问量 32658 次