最短域名的探索
在漏洞赏金狩猎中,拥有一个短域名用于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上发布我的想法。