作者:expsky

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

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

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

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

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

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

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

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

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

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

јԁ.com 转码后 xn–e2a25a.com

4

5

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

6)(http://www.ms509.com/?attachment_id=656)

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

14

直接在浏览器中打开 јԁ.com (xn–e2a25a.com )

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

15

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

我们还可以再做个实验:

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

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

хіамі.com 转码后 xn–80ayza2ec.com
7

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

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

ԚԚ.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 (小米)
8

显示全部已被注册

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

Ӏԛіуі.com 转码后 xn–s1a1bb53bvo.com (爱奇艺)

іԚіуі.com 转码后 xn–s1a1bab19g.com (爱奇艺)

іԚіҮі.com 转码后 xn–c2aaa96axr.com (爱奇艺)

ԜеіЬо.com 转码后 xn–e1as5bzb08e.com (微博)

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

同样显示已被注册

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

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

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

11

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

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

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

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

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

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

微信钉钉

用域名:

ТаоВао.com 转码后 xn–80aaf1cct.com
在我自己的iphone上进行了试验:

16

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

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

微信截图_20170607180127

12

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

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

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

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

0x03

按照惯例总有个结尾,这次就只说一句,希望马爸爸看到这篇文章,看是否也能给个奖励.