Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)

漏洞分析

ConnMan 处理 WIFI Portal 时的堆越界写,这部分协议特性称作:WISPR

WISPR 特性和漏洞:



Exploit 使用的漏洞为 CVE-2022-32292, count 和 pos 的计算有问题导致会修改相邻内存块中的 \x0a --> \x00

漏洞利用

堆布局原语:利用 http header 作为内存申请和释放原语

信息泄露

思路: byte 越界写 --> 劫持指针 --> DOUBLE FREE --> 1'st free & realloc with dhcp --> 2'st free && write libc ptr to dhcp mem --> leak.

  1. 通过布局让 receive_buffer 后面跟着一个 hashtable.values 指针数组,利用漏洞修改指针的 \x0a --> \x00,让两个指针指向同一块内存。

  2. 然后用 dhcp hostname 占位重叠内存。

  3. 利用 hashtable.values 的引用释放 hostname 所在内存,将块放到 unsorted bin --> 写入 libc 地址到 hostname

  4. dhcp 返回 hostname 给攻击者

代码执行

方案一 (LIBC 2.29)

构造重叠堆块,然后劫持 tcache next 指针,任意地址写。



​​​​

方案二 (LIBC 2.34)

劫持其他函数指针.

发送 CAN 报文

connman 可以用 raw socket 发送 can 报文,实现特定功能。

Pwn2own 2022 Tesla 利用链 (ConnMan 堆越界写 RCE)的更多相关文章

  1. 利用userfaultfd + setxattr堆占位

    利用userfaultfd + setxattr堆占位 很久之前便看到过这个技术的名字,但是由于自己的摆烂,一直没有管.今天终于找到时间好好看一下这个技术的利用方式.利用userfaultfd + s ...

  2. PHP利用二叉堆实现TopK-算法的方法详解

    前言 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前10或前100个数,同时要保证 内存和速度的效率,我们可能第一个想法就是利用排序,然后 ...

  3. FastJson反序列化漏洞利用的三个细节 - TemplatesImpl的利用链

    0. 前言 记录在FastJson反序列化RCE漏洞分析和利用时的一些细节问题. 1. TemplatesImpl的利用链 关于 parse 和 parseObject FastJson中的 pars ...

  4. commons-collections利用链学习总结

    目录 1 基础 ConstantTransformer InvokeTransformer ChainedTransformer LazyMap TiedMapEntry TransformingCo ...

  5. JDK原生反序列化利用链7u21

    前言 JDK 7u21以前只粗略的扫过一眼,一看使用了AnnotationInvocationHandler,就以为还是和 CC1 一样差不多的利用方式,但最近仔细看了下利用链发现事情并不简单- 7u ...

  6. fastjson反序列化-JdbcRowSetImpl利用链

    fastjson反序列化-JdbcRowSetImpl利用链 JdbcRowSetImpl利用链 fastjson反序列化JdbcRowSetImpl - Afant1 - 博客园 (cnblogs. ...

  7. Apache Common-collection 反序列化利用链解析--TransformedMap链

    Apache Common-collection 反序列化利用链解析 TransformedMap链 参考Java反序列化漏洞分析 - ssooking - 博客园 (cnblogs.com) poc ...

  8. 深入剖析CVE-2021-40444-Cabless利用链

    背景 CVE-2021-40444为微软MHTML远程命令执行漏洞,攻击者可通过传播Microsoft Office文档,诱导目标点击文档从而在目标机器上执行任意代码.该漏洞最初的利用思路是使用下载c ...

  9. TemplatesImpl利用链

    FastJson利用链 Fastjson的版本在1.2.22-1.2.24主要有两条链利用TemplatsImpl和JdbcRowSetImpl利用链先来学习TemplatsImpl利用链,这个与前面 ...

  10. Fastjson JdbcRowSetImpl利用链学习

    JdbcRowSetImpl 接着继续学习fastjson的第二条链JdbcRowSetImpl,主要是利用jndi注入达到的攻击,而且没有什么利用限制,而且其原理就是setter的自动调用,具体se ...

随机推荐

  1. transaction_timeout:达到事务超时时终止会话

    功能实现背景说明 我们已经有两个参数来控制长事务:statement_timeout 和 idle_in_transaction_session_timeout.但是,如果事务执行的命令足够短且不超过 ...

  2. 使用hexo进行github博客搭建

    1.你必须建一个存储库,这个存储库要和你的github名称一致(不然就会404),如下图: 2.如果是window配置,需要安装git和node.js 3.下载hexo npm config set ...

  3. 线段树介绍(segment tree)

    1.引入 给定一个区间\([1, n]\),希望你实现一种数据结构,支持以下操作: 1.修改\(i\)号节点的值. 2.询问区间\([i, j]\)中所有节点的和. 这不是树状数组板子 3.修改区间\ ...

  4. 封装JWT - 生成 jwt 和解析 jwt

    1. ASP.NET Core 身份验证和授权验证的功能由Authentication,Authorization中间件提供 :app.UseAuthentication(),app.UseAutho ...

  5. kotlin类和对象—>属性与字段

    1.声明属性,Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的 class Address { var name: String = "Ho ...

  6. 宏定义define的用法

    #define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令.它的作用是定义一个名为 read 的宏,用 ...

  7. 云原生爱好者周刊:Lens 5.2 发布,支持 M1 芯片

    云原生一周动态要闻: Lens 5.2 发布 CNI 1.0.1 发布 K8ssandra 从 Helm 迁移到 Operator Amazon EKS Anywhere – 现在普遍可用于在本地创建 ...

  8. Analysis I Chapter 2 - By Professor Terence Tao

    目录 2.1 The Peano Axioms 2.2 Addition - Exercises 2.2 - 2.3 Multiplication - Exercises 2.3 - Method o ...

  9. Java高并发synchronized讲解生产者消费者

    问题描述 题目:两个线程操作一个变量,实现两个线程对同一个资源一个进行加1操作,另外一个进行减1操作,且需要交替实现,变量的初始值为0.即两个线程对同一个资源进行加一减一交替操作.话不多说,开干首先我 ...

  10. 文件操作(C语言)

    1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用 ...