magicheap(unsorted_bin_attack)
题目链接: https://github.com/scwuaptx/HITCON-Training/tree/master/LAB/lab14 首先分析程序,存在任意长度堆溢出,我们的目的是覆盖 bss 段的 magic 变量,使其大于 0x1305, 很容易想到 unsorted bin attack, 该技术达到的效果就是写 unsorted_chunks (av) 到任意地址,而这个值是比较大的。 我会着重展示内存的变化: bk 是指向 chunk 的 pre_size 的地方的,而我们的 target address 对应的是 fake chunk 的 fd 的地方。 所以 bk = target_address-0x10 我们直接利用堆溢出,将 unsorted bin 链表中的第一个 chunk 的bk,从而malloc 堆块的时候就能达到 bk 写 unsorted bin 链表头部值的效果。 首先 malloc 三个 chunk,分别问 chunk 0, chunk1,chunk2: gef➤ heap chunks Chunk(addr=0xa1e010, size=0x30, flags=PREV_INUSE) [0x0000000000a1e010 61 61 61 61 0a 00 00 00 00 00 00 00 00 00 00 00 aaaa....