拓冰建站拓冰建站
首页 / 资讯中心 / 正文

如何验证每一个重绑定规则?whonow的test.js集成测试全解读

如何验证每一个重绑定规则whonow的test.js集成测试全解读【免费下载链接】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服务器它的最大亮点在于你不需要编写任何配置文件只需通过域名本身就能动态定义每一条重绑定规则。可规则写好了怎么确认它真的按预期工作最可靠的方法就是运行项目自带的test.js集成测试。本文将完整解读这份测试文件手把手教你验证每一条 DNS重绑定规则从此不再凭感觉调试。whonow是什么把域名变成重绑定程序的DNS服务器whonow 让 DNS重绑定攻击变得极其简单只要在查询的域名中嵌入规则服务器就会按规则依次返回不同的 IP 地址从而实现第一次访问返回公网IP、之后解析到内网IP这类典型的重绑定效果。项目还提供公网实例运行在rebind.network:53任何人开箱即用。重绑定规则的核心语法四个关键词看懂whonow 的规则完全由子域名构成基本格式是A.IP地址.规则规则之间可以无限链式拼接1time/5times指定 IP 的响应次数单复数写法都支持forever永久返回该 IPrepeat从头循环执行整组规则例如A.192.168.1.1.1time.10.0.0.1.1time.repeat就会在 192.168.1.1 与 10.0.0.1 之间无限交替。这正是 DNS重绑定攻击最典型的用法浏览器第一次拿到公网 IP之后却被解析到内网地址从而绕过同源策略。⚡test.js到底在测什么一张表格看懂全部用例test.js以「域名 → 期望结果」的配对数组为核心覆盖了规则引擎的几乎所有边界情况我们来逐一拆解测试域名已省略UUID期望输出验证要点rebind.network127.0.0.1无规则时返回默认地址A.192.168.1.1.1time...192.168.1.1 → 127.0.0.11time只生效一次A.192.168.1.1.forever...永远 192.168.1.1forever永久生效A.192.168.1.1.5times.10.0.0.1.1time...5次 → 1次 → 默认多条规则按顺序执行A.192.168.1.1.1time.192.168.1.2.1times.repeat...1 → 2 → 1 → 2…repeat循环逻辑a.127.0.0.1.1time.192.168.1.x.forever共50个第一次 127.0.0.1小写a也能被识别这些用例合在一起就是一份完整的重绑定规则回归测试清单任何一处解析逻辑出错都会在这里立刻暴露。✅集成测试的原理把每个域名当成小程序执行在src/DomainRebind.js中每个域名都会被parseProgram()解析成一条条指令times / forever / repeat再用next()配合程序计数器programCounter逐步执行相当于一台微型的状态机。index.js则在服务器内存中为每个唯一域名保存一份程序状态同一域名被反复查询时计数器不断推进返回的 IP 也随之变化——这正是测试必须按顺序多次查询同一个域名的原因。为什么每个测试域名都要带UUID因为 whonow 把「唯一域名」当作「独立程序实例」若两个用户使用了完全相同的域名状态就会互相干扰。所以 test.js 一启动就通过uuid/v4生成全新 UUID 并拼进每个测试域名中确保每次运行都是干净的环境同时也顺带演示了官方推荐的 UUID 防冲突用法。手把手运行集成测试最快的验证方法运行测试只需两步这也是 README 官方文档推荐的方式安装并启动服务器先执行npm install --cli -g whonowlatest再运行whonow -p 15353让服务监听 15353 端口在另一个终端进入 whonow 所在目录运行npm test等价于node test.js。test.js 会把 DNS 服务器指向127.0.0.1:15353随后逐个查询测试域名并用assert.equal严格比对返回结果。整个流程是递归串行执行的一旦某个用例不匹配测试会立刻失败并抛出异常。测试通过后如何看懂输出测试运行时会在终端逐行打印「解析结果 查询域名」例如192.168.1.1 A.192.168.1.1.1time.uuid.rebind.network 127.0.0.1 A.192.168.1.1.1time.uuid.rebind.network看到同一个域名两次返回不同 IP就说明1time的一次性重绑定规则验证成功所有行打印完毕且无报错即代表全部重绑定规则通过了集成测试。小结通过test.js我们不仅能验证每一条重绑定规则的正确性还能深入理解 whonow 的核心设计域名即程序、状态按域名隔离、UUID 保证环境独立。对于想学习 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),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门