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

结束

 

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