34c3 v9

news/2024/5/19 21:26:27 标签: pwn, CTF

记录这个题不是因为类型混淆,而是学到了一个利用修改object的Properties来实现任意地址读写的手法

题目中的类型混淆会导致可以将一个错误类型的数据无感的写到某个位置,通过这个漏洞可以轻松的实现addressof和fakeobject,但是由于泄露不出来map所以后续不知道该怎么伪造object。

方法是从这里学到的:
https://erosjohn.github.io/2020/05/31/34c3-v9/

手法大概就是,首先有一个object和一个ArrayBuffer,然后object里放上一个键值对,方便的形式如下

var o = {
	c : 1.1
};
o.d = 2.2;

然后先把o.d改成arraybuffer的地址,此时原本的2.2被替换成了arraybuffer的地址,然后再把o.d替换成一个object,就叫他target吧,此时原本2.2的位置刚好就是target的properties字段,注意这里的替换不是正经替换,必须是无感的通过此漏洞直接将o.d的位置写成target的地址,其他任何数据都不扰动。

经过上述手段构造出来的结构,当我修改target里的某个键值对的时候,就可以达到直接修改arraybuffer内部结构的效果,如果修改的是backing store,则实现了从addressof和fakeobject进化到任意地址读写。


http://www.niftyadmin.cn/n/5283645.html

相关文章

R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()

文章目录 介绍Reduce()实例 Filter()实例 Find()实例 Map()实例 Negate()实例 Position()实例 介绍 R语言中的Reduce(), Filter(), Find(), Map(), Negate(), Position()是base包中的一些高级函数。随后,很多包也给这些函数提供了更多的扩展。 Reduce() 该函数根…

ansible的脚本-----playbook剧本

ansible的脚本-----playbook剧本 playbook组成部分: 1、tasks任务:包含要在目标主机上执行的操作,使用模块定义这些操作。每个任务都是一个模块的调用 2、variables变量:存储和传递数据,变量可以自定义,…

Windows系统安装 ffmpeg

下载及解压 ffmpeg官方下载地址:https://ffmpeg.org/download.html 下载好后将其解压至你想保存的位置中。 环境变量设置 打开Windows设置,在搜索框输入:系统高级设置。 新建环境变量,并输入bin目录具体位置。 安装检查 按住 w…

使用Python实现发送Email电子邮件【第19篇—python发邮件】

文章目录 👽使用Python实现发送Email电子邮件🎶实现原理🏃Python实现发送Email电子邮件-基础版👫实现源码🙆源码解析 💇Python实现发送Email电子邮件-完善版👫实现源码🙆源码解析&am…

VSC(Visual Studio Code)好用插件推荐

Bookmarks 可用来标记需要关注的代码段、文件。方便后续查看。例如在进行taro开发的时候,我标记了配置文件,可以快捷点击标签到配置文件,从而直接运行项目。不用找来找去。 Color Highlight 可用来将文件中的颜色配置文件进行对应颜色标记…

python简单分割文件的方法(python经典案例)

在某些情况下,我们需要将一个大文件分割成多个小文件,或者根据长度、行数等规则将一个文件分割成多个文件。Python提供了简单的方式来实现这些操作。 方法1:使用seek和read方法 下面是一段示例代码,它将一个文件分割成5个小文件…

第六章---匹配系统(中)

1.玩家位置同步 1.1后端修改 玩家的位置也要在服务端确定,确定完之后将每个玩家的位置传到前端。 添加一个玩家类 consumer.utils.Game.java import java.util.List;Data AllArgsConstructor NoArgsConstructor public class Player {private Integer id;priva…

Jenkins自动化部署之后端

准备工作参考本人另外几篇Jenkins相关的文章 新建任务 添加参数配置 字符串参数:分支名称 多选框:项目名称(Extended Choice Parameter插件必备,插件安装参考我另外的文章) 这个分割规则自定义。只要根据Jenkins…