Z-WASP是指zero-width space (),这是黑客在邮件的原始HTML中加入了恶意URL中加入的字符。这些特殊字符虽然破坏了原来的URL,但是微软邮件处理过程中并不会注意到这些字符串,所以域名声誉检测和安全链接检查无法应用到URL的检查中。
大约在2018年11月10日,研究人员发现很多收件箱中出现了大量的Z-WASP邮件。因为zero-width spaces不会被浏览器渲染形成可见的内容,因此接收者并不会看到URL中添加的这些随机的特殊字符。直至2019年1月9日,微软修复了该漏洞。
Z-WASP PoC
2018年11月,安全研究人员发现一个利用office 365漏洞绕过所有微软安全措施进行钓鱼的方法。该漏洞使所有的office 365用户都易受到攻击,无论是否使用Office 365的高级安全防御系统(ATP)。研究人员统计发现这种攻击方法大约攻击了超过90%的Avanan Office客户。
研究人员发现大量黑客使用zero-width spaces (ZWSPs)来混淆office 365中的钓鱼邮件链接,将钓鱼URL隐藏在Office 365 Security和Office 365 ATP之中。这中方法绕过了Office 365的URL声誉检车和安全链接URL保护。
利用Z-WASP漏洞的攻击从结构上来看是非常简单的,但是其潜在影响是非常巨大的。
为了证明该漏洞和攻击,研究人员进行了测试。
POC视频参见:
首先,研究人员发送一个恶意URL到没有ZWSP字符的URL的office 365收件箱中。
然后,发送在URL中插入了ZWSP字符的相同的恶意URL。
Zero-Width Spaces (ZWSPs)?
ZWSPs可以理解为空格字符串,或者0宽度的空格字符串。一共有5种ZWSP实体,分别是:
(Zero-Width Space)
(Zero-Width Non-Joiner)
(Zero-Width Joiner)
(Zero-Width No-Break Space)
0 (Full-Width Digit Zero)
在原始的HTMLL格式中,ZWSPs看起来像随机插入的数字和特殊字符;在浏览器中,其格式是不可见的,看起来就像是标准的URL。
ZWSPs常见的使用包括:
对文章和文档指纹化;
对外文进行格式化;
将长单词在行末中断,并在新的一行继续。
Z-WASP钓鱼攻击工作原理
在Z-WASP钓鱼攻击中,Zero-Width Non-Joiner ()被加入到邮件的原始HTML中的恶意URL中间。
微软邮件处理并没有将该URL认作是合法的URL,也没有应用相关安全检查,比如URL声誉检查和安全链接检查。邮件到达接收者后,用户在收件箱中看不到URL中的ZWSPs。
当用户点击邮件中的链接后,就会被带到一个钓鱼网站。比如下面的例子就是一个伪造的银行网站:
通过下面的URL我们可以看出来Microsoft Security理解含有ZWSP的URL和不含有ZWSP的URL的区别,以及URL如何展现给接收者。
Microsoft Security看到的URL:
展现给用户的是:https://google.com/