d3ctf-2022 d3kheap与CVE-2021-22555

分析

内核版本5.11(没有GFP_KERNEL_ACCOUNT的隔离),smap,smep,kpti,kaslr.
给了一次1024字节对象的double free,但未提供对该对象读写能力.

用户态pwn题对double free的处理一般是利用堆管理器,劫持freelist达成任意地址分配.且在此之前一般需要先获得一些地址信息.

在这里,我们需要通过一次对不具有读写能力的对象的double free完成信息泄露以及控制流劫持.这种效果在内核中反而容易办到,因为内核中有大量可以利用的结构体.

阅读更多...

数据流分析 学习笔记

学习CSCD70 和 南京大学《软件分析》课程中数据流分析部分的笔记与思考.
ps: 本篇有许多个人观点,如有错误虚心求教.

中间表示 IR

静态单赋值 SSA

静态单赋值(SSA),就是让每次对变量x赋值都重新使用一个新的变量xi,并在后续使用中选择最新的变量.
在控制流汇入同一个块时,导致多个变量备选,则使用合并操作符(phi-function),根据控制流的信息来决定选择哪个变量.

阅读更多...

QemuTimer Callback机制

前言

在做2021 HWS FastCP的时候,有这样一个场景.漏洞点是对CP_buffer的溢出读写,可以覆盖掉之后的QEMUTimer结构,自然想到劫持其的callback函数指针.

但又多想了一点,cp_timer的回调函数是在pci_FastCP_realize中调用timer_init_full注册(初始化)过的,说不定callback指针已经在另一个位置保存并作为之后回调使用,并不会调用该结构中的指针.

阅读更多...
  • Copyrights © 2022-2024 翰青HanQi

请我喝杯咖啡吧~

支付宝
微信