whonow域名规则语法完全指南:A、times、forever、repeat四大关键字一文学会

📅 发布时间:2026/8/19 17:40:45
whonow域名规则语法完全指南:A、times、forever、repeat四大关键字一文学会
whonow域名规则语法完全指南A、times、forever、repeat四大关键字一文学会【免费下载链接】whonowA malicious DNS server for executing DNS Rebinding attacks on the fly (public instance running on rebind.network:53)项目地址: https://gitcode.com/gh_mirrors/wh/whonowwhonow 是一个专为 DNS 重绑定DNS Rebinding攻击设计的开源 DNS 服务器它最与众不同的地方在于whonow域名规则语法完全由域名本身来书写。你不需要自建恶意 DNS 服务器只要在子域名里写对 A、times、forever、repeat 这四大关键字公共实例 rebind.network:53 就会按你的剧本依次返回不同 IP实现攻击过程中 DNS 解析结果的动态切换。本文将用最通俗的语言带新手一文学会这套域名规则语法并附上可直接上手的实战示例。上图是 whonow 服务运行时的日志输出可以看到大量A.127.0.0.1.1time.192.168.1.x.forever.xxx.rebind.network形式的查询被实时处理这正是域名规则语法在逐条执行的过程。一、whonow域名规则语法核心结构读懂一条规则先看一个完整的例子A.34.192.228.43.1time.192.168.1.1.forever.rebind.network它表达的意思是第一次查询返回34.192.228.43之后永远返回192.168.1.1。拆开来看通用格式是这样的A.IP地址.规则[.IP地址.规则...][.uuid随机串].rebind.network从左到右依次是组成部分含义A记录类型关键字目前仅支持 A 记录IP地址一个 IPv4 地址如192.168.1.1规则times / forever / repeat 三个规则之一uuid随机串建议加上用于隔离不同用户的规则状态rebind.network指向 whonow 公共 DNS 服务器的域名规则可以无限链式拼接形成复杂的响应行为。整套解析逻辑都在源码src/DomainRebind.js的parseProgram()方法第 37–89 行中实现。二、A关键字规则的起点与类型声明A 是域名规则语法中的第一个关键字它声明了这是一条A 记录查询即把域名解析为 IPv4 地址。⚡目前 whonow 只支持 A 记录AAAAIPv6在计划中A 关键字大小写不敏感写成a或A都可以解析时会统一转小写处理如果域名不以 A 开头规则会被视为无效返回默认地址默认127.0.0.1。最简单的用法是只声明类型、不写规则A.192.168.1.1.rebind.network三、times关键字精确控制返回几次times 的作用是规定上一个 IP被返回多少次语法为(n)time或(n)times单复数都能识别1time、3times、5000times都是合法写法。例如A.34.192.228.43.1time.192.168.1.1.forever.rebind.network含义第 1 次查询返回34.192.228.43第 2 次起永远返回192.168.1.1。经典场景第一次让浏览器拿到外网攻击服务器 IP之后所有请求解析到目标内网 IP——这正是 DNS 重绑定绕过浏览器同源策略Same-origin policy的核心套路。再比如5times同一个 IP 会被连续返回 5 次第 6 次才轮到下一条规则。官方测试用例test.js里内置了几十条 times 组合示例是最佳学习教材。四、forever关键字从此固定不再变forever 表示永远返回上一个 IP它通常是规则链的终点。A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network上面这条的含义是先返回192.168.1.1一次再返回192.168.1.2两次之后一直返回192.168.1.3。在源码实现中forever 等价于 count 为无穷大Infinity的指令永远不会自己走到下一条。五、repeat关键字让规则从头再来repeat 是唯一一个不跟随 IP 地址的关键字它表示从头开始重新执行整套规则适合做循环、交替式的响应。A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network这段规则会永远在127.0.0.1和10.0.0.1之间交替返回1 次回环地址 → 1 次内网地址 → 再回到开头……实现两个 IP 的无限轮换。六、组合实战三条最常见的DNS重绑定规则写法把四大关键字组合起来就能写出丰富的响应策略1. 单次后固定最常见A.34.192.228.43.1time.192.168.1.1.forever.rebind.network第一次返回公网 IP之后返回内网 IP。2. 交替轮换A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network两个 IP 无限交替适合反复横跳的测试场景。3. 三段递进A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network1 次 → 2 次 → 永久规则状态一目了然。七、重要提醒别忘了加UUID随机串whonow 会为每一个唯一域名在内存中保存一份独立的规则状态程序。也就是说如果两个用户使用完全相同的域名状态会互相干扰、计数错乱。解决办法是在规则末尾追加一个 UUID 子域名# 推荐这样写 A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network # 避免这样写容易与他人冲突 A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network此外服务端通过--max-ram-domains参数限制内存中保存的域名数量默认 1000 万超出后会按先进先出FIFO方式清除最旧的域名状态相关请求处理逻辑位于index.js。八、域名规则语法的硬性限制由于规则写在域名里必须遵守 DNS 协议约束单个标签子域名最多 63 个字符完整域名最多 253 个字符标签数量不能超过 127 个。写长规则时请先在心里估算长度避免构造出无效域名。九、速查表whonow域名规则语法一表记牢关键字语法作用AA.IP.规则声明 A 记录查询起点times1time/5times指定 IP 返回 N 次foreverforever永远返回上一个 IPrepeatrepeat回到规则开头重新执行学会这四大关键字你就掌握了 whonow 域名规则语法的全部核心。如果想本地实践可以npm install -g whonow后运行whonow --port 53再用nslookup或dig发起查询观察不同关键字带来的响应变化配合test.js内置的几十条语法用例反复对照很快就能写出属于自己的 DNS 重绑定规则。【免费下载链接】whonowA malicious DNS server for executing DNS Rebinding attacks on the fly (public instance running on rebind.network:53)项目地址: https://gitcode.com/gh_mirrors/wh/whonow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考