Web漏洞分析与防范实战:卷1
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.2 CVE-2016-1764漏洞分析

CVE-2016-1764漏洞最简单的触发Payload为javascript://a/research?%0d%0aprompt(1)。可以看出,这个漏洞实际上是未处理的%0d%0导致的,这是一种常见的XSS漏洞利用方式。

值得一提的是,选择使用prompt(1)而不是更常见的alert(1)的原因。经过实际测试发现,alert无法弹出窗口,此外很多网站直接过滤了alert函数,因此,在测试XSS时,建议将prompt替换为alert。

当遇到需要分析这样的客户端XSS漏洞时,首先要查看location.href信息。该漏洞是在applewebdata://协议下发生的,原漏洞分析里已经提到。然后要看具体的触发点,一般在浏览器环境下可以通过查看HTML源代码来分析,但是在客户端通常无法看到。因此,我们可以使用以下小技巧:

这里是查看HTML里的head代码:

继续查看body代码:

那么,关键的触发点如下:

JS代码被设置进a标签的href属性,导致单击a标签后执行漏洞。iMessage新版本的修复方案是直接不解析javascript://。