最短域名的探寻之旅
在漏洞赏金狩猎中,拥有一个短域名用于XSS载荷可能决定着你能否成功利用漏洞……而且拥有一个漂亮的域名来存放载荷真的很酷,哈哈。
一月份我开始全职从事漏洞赏金工作时,某天早晨我决定为自己找一个适合概念验证和载荷的域名。这变成了一整天的冒险。我花了大约六个小时逆向工程域名提供商的API,并自动化检查哪些域名可用的过程。
ASCII和Unicode
在处理载荷域名时,有时每个字符都很重要。ASCII和Unicode字符计数都很重要。许多Unicode字符在URL中会解析为ASCII,这意味着如果你正在制作XSS或SSRF载荷,短域名有时正是你所需要的。
例如,像1.com这样的域名很直接,有4个ASCII和4个Unicode字符,因为它不会压缩。但还有我拥有的rad.pw。它有5个ASCII字符,但只有2个Unicode字符,因为"㎭“和”㎺“各自是一个Unicode字符。
寻找最短域名
我的目标是找到字符数最少的域名,理想情况下是3个ASCII和2个Unicode,比如1.rs。不幸的是,这些域名(大部分)都已被注册。因此,我将目标转向寻找具有4个ASCII和2个Unicode字符的域名。
然而,以合理价格找到这样的域名也被证明是一个挑战。经过大量搜索,我最终获得了:
- rad.pw:5个ASCII,2个Unicode,“rad password"是概念验证的酷域名
- t4.rs:4个ASCII,3个Unicode,因为t4不会压缩,是机器人tars的简称
- km3.pw:5个ASCII,2个Unicode。我在找到另外两个之前先得到了这个。如果有人感兴趣拥有它,我不太需要,所以如果你想要就告诉我。
隐藏的宝藏和昂贵的发现
在搜索过程中,我发现了一些有趣的域名。如果你愿意挥霍,你可以从nic.st获取一个4个ASCII和2个Unicode的域名。像rs.st这样的域名是可用的,但它们价格昂贵——由于是4字符域名,价格为799欧元,外加29欧元的年费。
域名的圣杯
最终的发现,虽然价格昂贵达1500欧元,是几个域名:2.st和9.st(可能还有其他1-2个[数字].st域名),它们是3个ASCII和2个Unicode。这些是稀有的珍宝,无法进一步缩减。
或者真的无法缩减吗?
到目前为止我提到的所有字符计数都包括句点/点,但从技术上讲,有一组Unicode字符结合了数字和句点,比如⒉,所以像⒉st这样的实际上更短。遗憾的是,浏览器(以及我测试过的Unicode规范化器)不会将⒉转换为2.,它们只是将其转换为2并去掉句点。所以,虽然这些域名在技术上更短,但据我所知,它们在实践中不起作用。
编辑: 好吧,我刚刚发现⒉st在JavaScript和Python中确实被转换为2.st。
JavaScript: normalize(‘NFKC’)和normalize(‘NFKD’)都将"⒉st”→“2.st”
Python: unicodedata.normalize(‘NFKC’)和unicodedata.normalize(‘NFKD’)也将"⒉st”→“2.st”
告诉我你的发现
我觉得这一切都非常有趣,所以请标记我并告诉我你最好的域名是什么,以及我是否错过了某个顶级域名或一些黄金域名。
- Joseph
注册我的邮件列表,以便在我发布更多类似内容时知道。 我还在Twitter/X上发布我的想法。