ciscn_2019_s_6


例行检查

 没有开启nx保护,考虑用shellcode来做这道题

程序放入ida查看

 我们可以输入48个字符覆盖0使printf打印出bp的值

 继续看这里,buf的大小实际上只有0x38的大小,但是read却可以输入0x40个字符所以存在溢出

 查看dest的位置,dest就在buf的下面,所以我们可以通过溢出将free_got的值溢出到这里,在通过strcpy使free_got指向shellcode拿到shell

完整exp如下

 注:offset是ebp到shellcode的偏移

\x00是strcpy遇到\0截断的特性

成功获得shell

 这道题还有第二种办法是通过申请chunk到shellcode的位置

堆之House of Spirit

[原创]LCTF 2016 PWN200(House Of Spirit)-Pwn-看雪论坛-安全社区|安全招聘|bbs.pediy.com

感兴趣可以自行去查看

结束!!!

相关