这几天刷了四道题,巧了都是Fastbin attack,本来惯用的套路是直接onegadget打__malloc_hook
,然后所有onegadget都打不通的情况也很常见,我之前所知道的仅仅局限于__realloc_hook
和__malloc_hook
的联合使用来调整堆栈,但是也有一定的局限性,这次结合pwnable.tw上的几道题以及CTFhub上收录的CISCN 2019的一道题,小小地总结一下Fastbin attack的一些套路。
其实挺简单的一个rop题目,本来不想写这个wp,感觉没必要,因为除了爆破就是爆破,还爆了十多分钟。但是因为不想直接one_gadget还想了有一段时间怎么写rop,最后还是写出来了,成功打通,索性记录一下。
典型的House of orange + unsorted bin attack + _IO_FILE,之前在melody_center中有写过,基本是一样的,除了一些利用的细节。权当是练习了,毕竟第一次接触的时候,写起来有点吃力。
做了两题溜了,pwn倒是挺简单,被f-hash搞得心态崩了,主要是搞出来的flag错了,找不到问题。结果看人家的wp,wtf,脚本是对的,flag就一个字母不对???
和re-alloc一样,只不过开了PIE和RELRO,got表改不了了,要利用stdout结构体来leak libc,因为第一次做,而且过程稍微有些复杂,所以记录一下。