- Web漏洞分析与防范实战:卷1
- 赵伟 杨冀龙 知道创宇404实验室
- 518字
- 2025-01-22 14:15:49
1.2.3 从老漏洞(CVE-2016-1764)到0day漏洞
XSS漏洞的本质是注入的代码最终被解析执行。既然我们看到了document.head. innerHTML,是否还有其他注入代码的机会呢?首先,我尝试了CVE-2016-1764漏洞点攻击,使用" "及< >进行闭合,但都被过滤了。接下来,我检查其他可能存在代码输入的点,发现了一个潜在的输入点。于是,我尝试发一个tttt.html附件来查看解析情况,部分代码如下:


附件的文件名在代码中出现,可能为攻击者提供了操控的空间。经过一系列测试发现,尽管过滤机制相对严格,我最终还是识别出一个潜在的风险点,即位于文件扩展名的部分:


将提交附件的后缀嵌入style属性:

这可能导致CSS注入。测试中,我也发现了一些过滤措施的存在,例如“/”被直接转换为“:”。这一点颇为有趣,正如“成也萧何,败也萧何”,如果你的目标是注入CSS,那么在属性赋值时必须使用“:”,但文件名中又不能包含“:”。而我尝试在注入的CSS中调用远程CSS或图片资源时,又需要使用“/”,但“/”被替换成了“:”。
尽管存在这些挑战,我还是决定先尝试注入CSS进行测试,于是提交了一个附件名:

按推断“/”变为“:”,如果注入成功应该是:

当我尝试发送包含这个附件的消息时,我的iMessage崩溃了,我想我发现了一个新的漏洞,于是升级OS X到最新的版本并重新测试,结果一个全新的0day漏洞诞生了!