hitcontraining_magicheap

拿到题目例行检查

 

 程序是64位的程序

 

 

 

 保护几乎全开,试运行一下程序

 

 

 

 十分明显的堆溢出的界面,将程序放入ida中,shift+f12发现了后门程序

 

 

 进入main主函数进行查看

 

 可以看到当,v3==4869&&magic>0x1305的时候我们可以获得权限

分别进入选择的程序查看,在edit程序中

 

 

这是magic的地址

 

 

 

 

 这个read_input这行没有限制v3的大小,所以这里存在堆溢出,

 

 我们建立三个堆,第二个堆释放后在unsortedbin中。我们可以通过修改bk的值为magic的值从而使magic>0x1305

 

 

 

此时堆的情况

 

 

 可以看到0x2090成功覆盖了bk的指针

 

 然后在申请一个0x80大小的chunk

系统会将free掉的chunk1的指针取出来

 

 此时magic的条件完成,

完整exp如下

 

 

 def  launch_gdb()是调用gdb调试程序,方便做题

 

 

 成功拿到shell

结束!!!!!!

posted @ 2021-09-01 19:25  庄周恋蝶蝶恋花  阅读(328)  评论(0)    收藏  举报