> For the complete documentation index, see [llms.txt](https://firmianay.gitbook.io/ctf-all-in-one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://firmianay.gitbook.io/ctf-all-in-one/6_writeup/pwn/6.1.6_pwn_defconctf2015_fuckup.md).

# 6.1.6 pwn DefconCTF2015 fuckup

* [ret2vdso 原理](#ret2vdso-原理)
* [题目解析](#题目解析)
* [漏洞利用](#漏洞利用)
* [参考资料](#参考资料)

[下载文件](https://github.com/firmianay/CTF-All-In-One/blob/master/src/writeup/6.1.6_pwn_defconctf2015_fuckup)

## ret2vdso 原理

在你使用 `ldd` 命令时，通常会显示出 vDSO，如下：

```
$ ldd /usr/bin/ls
        linux-vdso.so.1 (0x00007ffff7ffa000)
        libcap.so.2 => /usr/lib/libcap.so.2 (0x00007ffff79b2000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007ffff75fa000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007ffff7dd8000)
```

32 位程序则会显示 `linux-gate.so.1`，都是一个意思。

## 题目解析

```
$ file fuckup
fuckup: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
$ checksec -f fuckup
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      FORTIFY  Fortified Fortifiable  FILE
No RELRO        No canary found   NX enabled    No PIE          No RPATH   No RUNPATH   No       0               0       fuckup
```

## 漏洞利用

## 参考资料

* `man vdso`
* [Return to VDSO using ELF Auxiliary Vectors](http://v0ids3curity.blogspot.in/2014/12/return-to-vdso-using-elf-auxiliary.html)
