Buffer Overflow 0 / 1 / 2

发布日期:2019年02月26日 类别:pwn 题目来源:picoctf-2018 题目链接:https://2018game.picoctf.com/ (需要注册登录)

因为这几道题都比较简单,所以合并在一起了:

第 0 题

点击此处显示 Writeup
点击此处隐藏 Writeup

只要命令行参数足够长就可以把程序搞崩溃:

./vuln AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

第 1 题

点击此处显示 Writeup
点击此处隐藏 Writeup

只需要覆盖掉返回地址即可。看一下 win 的地址,以及缓冲区大小:

(gdb) print win
$1 = {<text variable, no debug info>} 0x80485cb <win>
(gdb) disas vuln
Dump of assembler code for function vuln:
   0x0804862f <+0>:     push   %ebp
   0x08048630 <+1>:     mov    %esp,%ebp
   0x08048632 <+3>:     sub    $0x28,%esp
   0x08048635 <+6>:     sub    $0xc,%esp
   0x08048638 <+9>:     lea    -0x28(%ebp),%eax
   0x0804863b <+12>:    push   %eax
   0x0804863c <+13>:    call   0x8048430 <gets@plt>

缓冲区大小为 0x28。因此

第 2 题

点击此处显示 Writeup
点击此处隐藏 Writeup

这次需要带两个参数调用 win。查看一下 win 的地址和缓冲区大小:

(gdb) print win
$1 = {<text variable, no debug info>} 0x80485cb <win>
(gdb) disas vuln
Dump of assembler code for function vuln:
   0x08048646 <+0>:     push   %ebp
   0x08048647 <+1>:     mov    %esp,%ebp
   0x08048649 <+3>:     sub    $0x78,%esp
   0x0804864c <+6>:     sub    $0xc,%esp
   0x0804864f <+9>:     lea    -0x6c(%ebp),%eax
   0x08048652 <+12>:    push   %eax
   0x08048653 <+13>:    call   0x8048430 <gets@plt>

缓冲区大小为 0x6c。因此:

dontpan1c 的 CTF 笔记
南阳一出即相,淮阴一出即将。

知识共享许可协议

本站所有作品均采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

本站不包含明令禁止公开解题过程的题目。

本站由 Jekyll 强力驱动。