• DNSlog回显原理


    DNSlog是什么

    首先我们都知道DNS就是将域名解析为ip,用户在浏览器上输入一个域名a.com,就要靠DNS服务器将a.com解析到它的真实ip,这样就可以访问对应服务器上的相应服务。

    DNSlog就是存储在DNS服务器上的域名信息,它记录着用户对域名www.baidu.com等的访问信息,类似于日志文件。

    首先要了解一下域名是分级的,因特网采用层次树状结构命名方法。域是名字空间中一个可被管理的划分(按机构组织划分),域可被划分为子域,子域可再被划分,即形成了顶级域名、二级域名、三级域名等。从右向左为顶级域名、二级域名、三级域名等,用点隔开。例如:

    pan.baidu.com

    它由三个标号组成, com即为顶级域名,baidu为二级域名,pan即为三级域名。且域名不分区大小写。如图所示:

     DNS域名服务器同样具有类似的结构

    接下来详解域名解析的过程:

    1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来设置。

    2. 如果浏览器缓存中没有(专业点叫还没命中),浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在windows中可通过c盘里一个叫hosts的文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址。

    3.如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,每一个因特网服务提供ISP(电信联通移动),或一个大学都可以拥有一个本地域名服务器。,距离你不会很远,一般不会超过几个路由的距离。并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

    4. 如果LDNS仍然没有命中,就直接跳到根域名服务器请求解析

    5.根域名服务器返回给LDNS一个所查询域的顶级域名服务器(如.com .cn .org等)地址

    6.此时LDNS再发送请求给上一步返回的顶级域名服务器.

    7.接受请求的顶级域名服务器查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的权限域名服务器

    8. Name Server根据映射关系表找到目标ip,返回给LDNS

    9. LDNS缓存这个域名和对应的ip

    10. LDNS把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结束

    简单来说,就是我有个已注册的域名a.com,我在域名代理商那里将域名设置对应的ip 1.1.1.1 上,这样当我向dns服务器发起a.com的解析请求时,DNSlog中会记录下他给a.com解析,解析值为1.1.1.1,而我们这个解析的记录的值就是我们要利用的地方。

    看个直观一点的例子来理解:
    ping命令的时候会用到DNS解析所以我就用ping命令做个实验。

    可以看到解析的日志会把%USERNAME%的值给带出来,因为系统在ping命令之前会将%USERNAME%的值解析出来,然后再和abc.com拼接起来,最后ping命令执行将SH.a.com一起发给DNS服务器请求解析域名对应的ip地址,这个过程被记录下来就是DNSlog,看到这里应该有点感觉了。原理上只要能进行DNS请求的函数都可能存在DNSlog注入。

    实际的利用在我的这篇文章里有,我就不再测了。

    推荐几个DNSlog利用的平台:

    http://www.dnslog.cn
    http://admin.dnslog.link
    http://ceye.io

  • 相关阅读:
    Locust 场景执行:Web UI 中执行
    第1章 计算机网络和因特网
    目录
    计算机网络--自定向下的方法
    mysql索引总结
    7_异常处理
    6_面向对象-下之类的结构:内部类
    6_面向对象-下之关键字:interface
    6_面向对象-下之关键字:abstract
    6_面向对象-下之关键字:final
  • 原文地址:https://www.cnblogs.com/Silkage/p/13178032.html
Copyright © 2020-2023  润新知