题目描述:
菜鸡了解了什么是溢出,他相信自己能得到shell
解题思路:
1、拿到文件,首先查看一下文件类型:
tucker@ubuntu:~/pwn$ file level0
level0: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/l, for GNU/Linux 2.6.32,
BuildID[sha1]=8dc0b3ec5a7b489e61a71bc1afa7974135b0d3d4, not stripped
是64bit的ELF文件
我们查看下文件的详细信息:
tucker@ubuntu:~/pwn$ checksec level0
[*] '/home/tucker/pwn/level0'
Arch: amd64-64-little
RELRO: No RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x400000)
程序关闭了PIE和canary,这就使得我们的溢出可以变得简单。
2、打开IDA,看一下,发现程序很简单,溢出点很明显:
ssize_t vulnerable_function()
{
char buf; // [rsp+0h]