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
感兴趣可以自行去查看
结束!!!