PWNABLE.TW-Spirited Away-WP
比较简单的栈溢出加堆溢出。

此处在 cnt >= 100 时有单字节溢出,会把 nbytes 溢出成 n
然后通过此处

修改 buf,使之指向栈上一段可控空间

比如这一段,我们可以轻易地布置 fake chunk
…
PWNABLE.TW-death_note-WP
漏洞在于数组访问越界和堆栈可执行。在 add_note 函数中输入负数可以修改 got 表,使之指向一段我们可写的地址。自然地可以想到布置 shellcode getshell。然而本题对输入的 shellcode 进行了检查,每个字符都需要是可输出字符,这种题之前做过两道,都是使用工具自动生成的。因为我一直觉得 shellcode 这种东西挺没意思的,就一直没有深究到底该怎么写它,一直都是用工具生成,这道题就吃瘪了,把 shellcode 长度限制在了 80 中,现成的 shellcode 都无法使用。于是只能自己写
BUU-TWCTF_online_2019_asterisk_alloc-WP
这道题涉及到 realloc 的利用,还蛮新奇的,第一次接触。昨天晚上卡了一晚上没做出来,今天终于是解完了。
首先 realloc 在申请的空间不同时,行为也是不同的。我们记申请的大小为 Nsize,ptr 指向的堆块的大小为 Osize,那么在调用 realloc(ptr,Nsize) 时有以下几种情况