同形异义字:看我如何拿到TaoBao.com的解析权

Posted CnHacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同形异义字:看我如何拿到TaoBao.com的解析权相关的知识,希望对你有一定的参考价值。

*本文原创作者:[email protected]本文属FreeBuf原创奖励计划

同形异义字钓鱼攻击号称“几乎无法检测”,是最狡猾的钓鱼攻击!这种攻击产生的原因是国际化域名IDNs(Internationalized Domain Names)支持多语种域名,而其中一些非拉丁字符语种的字母与拉丁字符非常相似,字面看很难区分。关于同形异义字钓鱼攻击的相关技术,freebuf上之前已有文章介绍,这里就不再过多介绍这个技术,不清楚可以自行搜索.

0×01 腾讯、京东、支付宝、微博、淘宝已面临同形异义字钓鱼攻击

真有这么多网站面临威胁?其实还不止,还有爱奇异、小米……

目前发现的威胁都是通过西里尔字母来进行混淆

技术分享

上图是西里尔字母表,我们可以发现有不少字母与拉丁字母相识,这就是为什么用西里尔字母来进行混淆的原因

浏览器会通过Punycode来编码非拉丁字符的域名,编码后就可以避免产生混淆,但发现如果域名的一个字段里所有字符都是同一种语言,就不会进行编码(之前freebuf上有篇文章可能是笔误,关于这点刚好说反了)。据说这个问题chrome已经修复了,并且google还给相关发现者2000美金的奖励。

但我还是发现chrome有时候编码了,有时候又没编码

技术分享

比如上面看到的“淘宝”,并没有编码。后面要讲的钓鱼攻击对是否编码已经不重要,所以现在就不用深究这个问题

我们先从??.com开始(这里的??.com 已不等于 jd.com了,是不是认不出来有什么区别 ^_^)

我们尝试注册??.com,先Punycode转码后再查询

??.com    转码后   xn--e2a25a.com

技术分享技术分享

在国内不允许注册Punycode转码后的域名

技术分享

在国外的域名网站就可以正常查询了,这里显示的not available是指已经被注册了,而不是说Punycode转码域名不能注册。之前获得谷歌2000美金的安全人员就注册过арр?е.com(xn--80ak6aa92e.com)这个域名

技术分享

直接在浏览器中打开 ??.com (xn--e2a25a.com )

目前域名还没被解析,来到了域名服务商提供的默认页面。

技术分享

继续点击“了解如何才能拥有此域名”,可以看到明确说明此域名已经出售。

我们还可以再做个实验:

xiami.com虾米是阿里旗下的音乐网站,

我们查询西里尔字母的х?ам?.com,这个域名就没有被注册,显示的available

х?ам?.com   转码后   xn--80ayza2ec.com

技术分享

不是所有的英文字母都有与之相似对应的西里尔字母

我尝试了一些可以用西里尔字母拼出的国内知名网站

??.com   转码后   xn--x7aa.com  (腾讯)

??.com   转码后    xn--y7aa.com (腾讯)

??.com    转码后   xn--e2a25a.com (京东)

а??рау.com    转码后   xn--80aa1cn6g67a.com (支付宝)

???у?.com    转码后   xn--s1a1bab69g.com (爱奇艺)

ТаоЬао.com    转码后   xn--80aa5bbq6d.com (淘宝)

?е?Ьо.com    转码后   xn--e1as5bzb58e.com (微博)

?О.com    转码后   xn--n1a9b.com (360搜索)

М?.com    转码后   xn--l1a6c.com (小米)

技术分享

显示全部已被注册

又尝试了部分以上可以用大小写混淆的形式

???у?.com   转码后   xn--s1a1bb53bvo.com (爱奇艺)

???у?.com   转码后   xn--s1a1bab19g.com (爱奇艺)

?????.com    转码后   xn--c2aaa96axr.com (爱奇艺)

?е?Ьо.com    转码后   xn--e1as5bzb08e.com (微博)

ТАОВАО.com    转码后   xn--80aaf1cct.com (淘宝)

技术分享

同样显示已被注册

试了这么多域名都被注册了,可能我们会再次怀疑是系统问题或是巧合,我在上面的ТАОВАО后面再加个О试试

ТАОВАО О.com   转码后   xn--80aaf1ccaw.com

技术分享

这个域名就没有被注册了,所以不得不怀疑以上的域名是被刻意注册的

技术分享

上图是??.com(xn--e2a25a.com)的whois信息,whois信息被隐藏保护的,其他域名也类似或者提示无法显示或者有相关信息也无法追溯,只追溯到一个域名是国内安全圈的老司机注册的,这位可能是用来做研究

0×02 实施同形异义字钓鱼攻击,钉钉存在安全隐患

前面提到的chrome的漏洞就是浏览器地址栏没有进行Punycode转码,导致相似的文字可能产生混淆,存在钓鱼攻击的威胁。

我们这里不管google的这个漏洞有没有修复,换一个攻击思路:

一般内嵌手机APP的webview是没有地址栏的,所以转码也好,没转码也好,用户是看不到网址的

这里选了两个手机端最常见的即时聊天APP:

微信钉钉

用域名:

ТаоВао.com    转码后   xn--80aaf1cct.com

 在我自己的iphone上进行了试验:

技术分享


在微信里,这样的域名无论是否加http前缀都不会自动识别为url,所以也无法点击。(像上面baidu.com识别为url的会显示为蓝色,就可以直接点击打开)

然后再在钉钉里进行相同的尝试

技术分享

技术分享

在钉钉里三种形式都自动识别为url,点击后就可以直接打开网址

按住手机屏幕下拉可以看到当前的url为 xn--80aaf1cct.com 即 ТаоВао.com

也就是说在钉钉里发起同形异义字钓鱼攻击很难防范,存在很大的安全风险。加之前面的分析,大量这样的钓鱼网址已被注册,随时可能面临威胁

这里就没再对其他的APP做实验,很可能或多或少都有这样的问题























以上是关于同形异义字:看我如何拿到TaoBao.com的解析权的主要内容,如果未能解决你的问题,请参考以下文章

各大互联网企业Java面试题汇总,看我如何成功拿到百度的offer

自学总结:非科班转行前端拿到字节跳动 offer?看我是如何一步一步做到的?

「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)

在浏览器中输入www.taobao.com后执行的全部过程

实战解析看我是如何在XSS漏洞实战中做到“擒贼先擒王”!

python爬虫实战一|大众点评网