题目描述:
菜鸡感觉这题似乎没有办法溢出,真的么?
分析思路:
1、首先查看一下文件的详细信息,以及相关的安全机制:
tucker@ubuntu:~/pwn$ file int_overflow
int_overflow: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked,
interpreter /lib/ld-, for GNU/Linux 2.6.32,
BuildID[sha1]=aaef797b1ad6698f0c629966a879b42e92de3787, not stripped
tucker@ubuntu:~/pwn$ checksec int_overflow
[*] '/home/tucker/pwn/int_overflow'
Arch: i386-32-little
RELRO: Partial RELRO
Stack: No canary found
NX: NX enabled
PIE: No PIE (0x8048000)
我们发现程序开启了NX,即栈不可执行,因此我们只能通过栈跳转到现有的代码。
2、打开IDA看一下:
int __cdecl main(int argc, const char **argv, const char **envp)
{
int v4; // [esp+Ch] [ebp-Ch]
setbuf(stdin, 0);
setbuf(stdout, 0);
setbuf(stderr, 0);
puts("------