从一个钓鱼告警发现了中文域名的新知识点
2020-7-28 19:56:36 Author: mp.weixin.qq.com(查看原文) 阅读量:3 收藏

今天上班发现反钓鱼网站监测系统提示发现一个钓鱼网站,域名是:

http://xn--f4s524ga965g.xn--czr694b

点进去一看,是一个商户的meituan页面。

本来这也没什么,网上很多人扒我们的网站搞前端开发学习,刚想要忽略这个告警的时候,突然发现地址栏里显示的是一串中文域名,而且还和商铺名称一致,这就很有意思了。

接下来就观察到一个更有意思的现象,在这个商家的页面里不论点哪个按钮,页面会发生变化,但域名都不会发生变化。

打开第一个response,原来是服务端返回了一个frame,接下来所有的点击都在这个frame里进行,所以域名会一直以中文形式展现。真的好会给自己做推广。

转念一想,咱们平常的域名不都是英文的么?浏览器怎么认识中文域名的呢?查了资料发现,原来是通过Punycode实现的。也就是说无论使用什么语言,例如中文、日文、韩文、德文等等,都能转成DNS系统能识别的Punycode

Punycode是一个根据RFC 3492标准而制定的编码系统,主要用於把域名从地方语言所采用的Unicode编码转换成为可用於DNS系统的编码。Punycode可以防止IDN欺骗。

 早期的DNS(Domain Name System)是只支持英文域名解析。在IDNs(国际化域名Internationalized Domain Names)推出以后,为了保证兼容以前的DNS,所以,对IDNs进行punycode转码,转码后的punycode就由26个字母+10个数字,还有“-”组成。

目前,因为操作系统的核心都是英文组成,DNS服务器的解析也是由英文代码交换,所以DNS服务器上并不支持直接的中文域名解析,所有中文域名的解析都需要转成punycode码,然后由DNS解析punycode码。其实目前所说和各种浏览器完美支持中文域名,只是浏览器软里面主动加入了中文域名自动转码,不需要原来的再次安装中文域名转码控件来完成整个流程。

完全免费,双向转换 中文域名转码就是将中文字符串转成punycode标准编码的字符串

接下来又在思考,既然浏览器是Punycode转码实现中文域名的使用,那dig,nslookup这些域名查询相关的命令能认识中文域名吗?

很不幸,我电脑上的nslookup和dig都不认识,确切的说是不支持IDN。

必须做punycode转码才认识。

不过,ping却认识中文域名,是因为ping支持IDN。

有趣的知识点又增加了^_^

话说回来,既然punycode可以转任意语言,我们知道很多西方语言的字母重合度不小,尽管每个字符的Unicode不同,但肉眼难以分别,完全可以被利用做钓鱼。

比如:

A ---https://аliyun.com

B ---https://aliyun.com 

肉眼看来,A和B两个域名是一致的,但其实A的aliyun里的a是斯拉夫字母的a(U+0430),和拉丁字母的a(U+0041)是不一样的,浏览器会不同的处理。

当你访问A URL的时候,会看到地址栏变成了一串奇怪的字母,被punycode转码了:

当你访问B URL的时候,地址栏正常显示。

稍不注意,就进入了一个钓鱼网站了。

至于怎么检测呢?这就不细说了,总之各有各的道吧。

全文完。

笔芯

REF:

https://xz.aliyun.com/t/2737

https://cybersecurityventures.com/beware-of-lookalike-domains-in-punycode-phishing-attacks/


作者:阿飞,十余年来一直混迹于信息安全行业,扛过设备,卖过服务,做过审计,查过黑客,反过欺诈,岁月神偷带走了我的苹果肌,留下了一肚子的瘫软,貌似我将要成为一个油腻的中年男人,不过依然对世界充满好奇。


文章来源: https://mp.weixin.qq.com/s?__biz=MjM5Mjc0MDU1MQ==&mid=2452313765&idx=1&sn=cae87be2830b1837e67b7918f1fcaede&chksm=b17e530d8609da1bd7a15b1b270ab3797fa1c5d50d5515511bcab9607b057c129851b56aa3e2&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh