文章预览
16. easy_str (house of husk) libc-2.27.so,标准large bin attack。 https://www.polarctf.com/#/page/challenges 很简单的增删改查,chunk_list在栈上。 看add(),v5限制了5个chunk,大小限制了>=0x500,也就是没有fastbin,只有largebin。 看free(),显然没有清除指针,UAF无疑。甚至也没有v5-1,所以这题只有5个chunk。add 5次之后,即使全部free也无法新增新的chunk了。 然后就是有个LABEL_17,只有free和exit才能触发。而代码是看似无用的printf("%X", 0LL); 这个就是明显的提示需要用house of husk。这条链子满足只能用largebin,和用printf触发。 https://www.anquanke.com/post/id/202387 libc是2.27,但是全部是largebin,不满足tcache的进入条件,所以全程都不需要考虑tcache的问题。 既然是UAF,先来最简单的unsortedbin泄露libc。 from pwn import * context.log_level = 'debug' context.arch= 'amd64' #patchelf --set-interpreter /home/sonomon/glibc-a
………………………………