pwnable_start
第一次接触这种类型的题,例行检查一下

题目是32位

没有开启nx保护可以通过shellocode来获得shell
将题目让如ida中

由于第一次碰到这种题,所以我会介绍的详细一点,
可以看到程序中调用了俩次int 80 ,第一次调用int 80是执行了write打印出了push到栈的内容,因为需要用shellcode来做这道题所以我们需要知道偏移,通过程序我们可以泄露出esp的值,mov ecx,esp是将esp的值放入ecx中,所以我们可以通过溢出使程序跳转到这获得esp的值,当获得esp的值后可以跳转到shellocode处获得shell
在gdb中得知offset=0x14

因为程序最后有一个add esp,14h后才retn而之前的偏移会降低这个栈,所以我们需要让sp+14回到栈的原来的位置,
完整exp如下

shellocode是通过网上的查找

成功获得flag
结束

浙公网安备 33010602011771号