pwn(堆-ctfshow)

1:愚人杯 easy_checkin(UAF-32)

老规矩checksec

ida:

main函数,

菜单题,一个一个看。

先看add函数:

看del函数:

看print函数:

在free时有UAF漏洞,分管理块和数据块,只需要建两个大块释放后建小块控制管理块里的指针就OK了,把内容更换为system(/bin/sh)即可。

在__libc_start__main里发现system(‘sh’)。

exp如下: