CTF | XDCTF2015-pwn200(DynELF)
该题用到了 DynELF 技术 DynELF 是 pwntools 中专门用来应对无 libc 情况的漏洞利用模块,其基本代码框架如下。 p = process('./xxx') def leak(address): #各种预处理 payload = "xxxxxxxx" + address + "xxxxxxxx" p.send(payload) #各种处理 data = p.recv(4) return data d = DynELF(leak, elf=ELF("./xxx")) #初始化DynELF模块 systemAddress = d.lookup('system', 'libc') #在libc文件中搜索system函数的地址 再看 read 函数: 定义函数:ssize_t read(int fd, void * buf, size_t count); 函数说明:read()会把参数fd 所指的文件传送count 个字节到buf 指针所指的内存中. 若参数 count 为 0, 则read()不会有作用并返回0. 返回值为实际读取到的字节数, 如果返回0, 表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动. 思路: 1.调用 main 函数循环利用 2.泄露出 system 地址...