tcache poisoning
ヒープ関連
C++ vtable overwrite
C++では仮想関数を実現する為に実行バイナリ中に型に対して呼び出す関数の対応表( vtable : virtual method table )を持つ。このvtableの行先を書き換える。たぶん、C++だけではなく動的ポリモーフィズムを選択した言語なら出来そう。
動的ポリモーフィズム C++
静的ポリモーフィズム Rust
ヒープオーバーフローによるC++ vtable overwriteをやってみる - ももいろテクノロジー
use-after-freeによるC++ vtable overwriteをやってみる - ももいろテクノロジー
_IO_str_overflow を使ったvtable改竄検知の回避手法 - CTFするぞ
__free_hook 書き換え
__free_hook はfree時に呼び出す関数アドレスを指定できる。Full RELROでも書き換えられる。
SECCON Beginners CTF 2020 Beginners Heap Writeup &初心者向け解説
tcache poisoning SECCON Beginners CTF 2019 - Babyheap
tcache double-free glibc 2.28 以前の tcache では double free が検出されない [https://smallkirby.hatenablog.com/entry/2020/12/15/042803 【pwn 41.0】realloc-baseのmemory corruptionの古い小ネタと最近のtcache周りの小話 - newbieからバイナリアンへ]
chunk overlap
fastbin attack
[https://ptr-yudai.hatenablog.com/entry/2019/05/31/235444 ヒープ系問題におけるstdout / stderrを利用したメモリリーク - CTFするぞ]