D3CTF PWN Writeup

d3fuse

程序借助 libfuse 实现了一个文件系统,存在堆溢出的漏洞,修改 flags 字段来实现类型混淆,达到任意地址读写的效果。

Custom Mutators in AFL++

环境变量

  • AFL_CUSTOM_MUTATOR_LIBRARY:指向自定义变异的 so 库
  • AFL_CUSTOM_MUTATOR_ONLY 用于标记是否所有变异都是用自定义变异
  • AFL_DISABLE_TRIM 禁用 AFLPLUSPLUS 原生 TRIM(二分法搜索,对于高度结构化的输入没有意义)

API

1
void *afl_custom_init(afl_state_t *afl, unsigned int seed);

在 AFL++ 启动时调用,用于随机数生成和初始化缓冲区和状态

VNCTF2022 HideOnHeap Writeup

HideOnHeap

1.构造出堆重叠

题目白给了一个 double free 的机会,但是由于 free 中清空了 size 数组,所以无法在 free 之后修改堆块。这里考虑用 House of botcake 的方法来构造出堆重叠可以 UAF,简单的说就是让堆块同时存在于 Unsorted Bin 和 Tcache 中,这样申请取回时可以申请到两个相同地址的堆块。

0%