- 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附件来查看解析情况,部分代码如下:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/28_01.jpg?sign=1739463634-p6GDtxwKzXUHhRxKOTR0ukjVh7qxtGuS-0-86a25dc96f58f6d4bd41d1cd803ce33e)
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/29_01.jpg?sign=1739463634-4jMdAkXcnUfm5G6exT3MXuGd5zCV6HYz-0-58fb9eae2680b4cc9516ea62b5d1ef9d)
附件的文件名在代码中出现,可能为攻击者提供了操控的空间。经过一系列测试发现,尽管过滤机制相对严格,我最终还是识别出一个潜在的风险点,即位于文件扩展名的部分:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/29_02.jpg?sign=1739463634-9Wp59cQWgsJfQ4iYs5DpY6VskrtI0AwF-0-a5cd21468d4da05b0d3e5a0316774aef)
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/30_01.jpg?sign=1739463634-7PDZRNjyJyCgGK2pjSPstL3r6BvMVANY-0-6aade1b3a46ad478a705fd7a5f382bae)
将提交附件的后缀嵌入style属性:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/30_02.jpg?sign=1739463634-tIIuofL60xm5jKVpUHipeDQO2TgzIVBU-0-a7e95af25b5d3f0c141a4c76f1cf904c)
这可能导致CSS注入。测试中,我也发现了一些过滤措施的存在,例如“/”被直接转换为“:”。这一点颇为有趣,正如“成也萧何,败也萧何”,如果你的目标是注入CSS,那么在属性赋值时必须使用“:”,但文件名中又不能包含“:”。而我尝试在注入的CSS中调用远程CSS或图片资源时,又需要使用“/”,但“/”被替换成了“:”。
尽管存在这些挑战,我还是决定先尝试注入CSS进行测试,于是提交了一个附件名:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/30_03.jpg?sign=1739463634-89OHxPpBwS7xmd1vh7OabPGlHDt9mhn7-0-dbc1f5185136d258bdc7a53ccc1cb0bd)
按推断“/”变为“:”,如果注入成功应该是:
![](https://epubservercos.yuewen.com/1C0144/31724658703268506/epubprivate/OEBPS/Images/30_04.jpg?sign=1739463634-UcLjwAyxrGoqXEyVm7wi4a1XiCOx4IF5-0-9e2e6c307f09fe294c655fb85d846b6a)
当我尝试发送包含这个附件的消息时,我的iMessage崩溃了,我想我发现了一个新的漏洞,于是升级OS X到最新的版本并重新测试,结果一个全新的0day漏洞诞生了!