Guest User

Untitled

a guest
Oct 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. import requests
  2. import jwt
  3. import base64
  4. import bson
  5.  
  6. URL = "https://darkphenixspider.hfctf.org/"
  7.  
  8. SESSION_URL = URL + "get-session"
  9. START_URL = URL + "start"
  10. VALIDATE_URL = URL + "validate"
  11.  
  12. sess = requests.Session()
  13. resp = sess.get(SESSION_URL)
  14. j = resp.json()
  15.  
  16. headers = {'Session': j["session"]}
  17. json_headers = headers
  18. json_headers["Content-Type"] = "application/json"
  19.  
  20. resp = sess.get(START_URL, headers=headers)
  21. j = resp.json()
  22.  
  23. ##########
  24. # Main
  25. ##########
  26.  
  27. remaining = j["next"]
  28. visited = []
  29.  
  30. secrets = {
  31. "Up": [],
  32. "Down": []
  33. }
  34.  
  35. while len(remaining) != 0:
  36. print("-------------------------------")
  37. node = remaining.pop()
  38.  
  39. if node not in visited:
  40. visited.append(node)
  41.  
  42. resp = sess.get(f"{URL}/{node}", headers=headers)
  43.  
  44. try:
  45. j = resp.json()
  46. except ValueError:
  47. if resp.status_code == 200:
  48. value = resp.content.decode()
  49. j = bson.loads(base64.b64decode(value))
  50. else:
  51. continue
  52.  
  53. print(j)
  54.  
  55. if j.get("secret"):
  56. secrets[j["world"]].append(j["secret"])
  57.  
  58. nodes = j["next"]
  59.  
  60. if type(nodes) is list:
  61. for n in nodes:
  62. remaining.append(n)
  63. elif type(nodes) is str:
  64. remaining.append(nodes)
  65.  
  66. print("Secrets")
  67. print(secrets)
  68.  
  69.  
  70. a = "".join(secrets["Up"][::-1])
  71. print(a)
  72.  
  73. b = "".join(secrets["Down"][::-1])
  74. print(b)
  75.  
  76. ##########
  77. # Posting the fucking secret
  78. ##########
  79.  
  80. new_headers = headers
  81. new_headers["Content-Type"] = "multipart/form-data"
  82. resp = sess.post(VALIDATE_URL + f"?secret={a}", headers=headers)
  83. print(resp.content)
  84.  
  85. new_headers["Content-Type"] = "application/x-www-form-urlencoded"
  86. resp = sess.post(VALIDATE_URL + "?secret={a}", headers=new_headers)
  87. print(resp.content)
  88.  
  89. new_headers["Content-Type"] = "text/plain"
  90. resp = sess.post(VALIDATE_URL + "?secret={a}", headers=new_headers)
  91. print(resp.content)
  92.  
  93. new_headers["Content-Type"] = "application/json"
  94. resp = sess.post(VALIDATE_URL + "?secret={a}", headers=new_headers)
  95. print(resp.content)
  96.  
  97.  
  98. new_headers = headers
  99. new_headers["Content-Type"] = "multipart/form-data"
  100. resp = sess.post(VALIDATE_URL + f"?secret={b}", headers=headers)
  101. print(resp.content)
  102.  
  103. new_headers["Content-Type"] = "application/x-www-form-urlencoded"
  104. resp = sess.post(VALIDATE_URL + "?secret={b}", headers=new_headers)
  105. print(resp.content)
  106.  
  107. new_headers["Content-Type"] = "text/plain"
  108. resp = sess.post(VALIDATE_URL + "?secret={b}", headers=new_headers)
  109. print(resp.content)
  110.  
  111. new_headers["Content-Type"] = "application/json"
  112. resp = sess.post(VALIDATE_URL + "?secret={b}", headers=new_headers)
  113. print(resp.content)
  114.  
  115.  
  116. new_headers = headers
  117. new_headers["Content-Type"] = "multipart/form-data"
  118. resp = sess.post(VALIDATE_URL + f"?secret={a}/{b}", headers=headers)
  119. print(resp.content)
  120.  
  121. new_headers["Content-Type"] = "application/x-www-form-urlencoded"
  122. resp = sess.post(VALIDATE_URL + "?secret={a}/{b}", headers=new_headers)
  123. print(resp.content)
  124.  
  125. new_headers["Content-Type"] = "text/plain"
  126. resp = sess.post(VALIDATE_URL + "?secret={a}/{b}", headers=new_headers)
  127. print(resp.content)
  128.  
  129. new_headers["Content-Type"] = "application/json"
  130. resp = sess.post(VALIDATE_URL + "?secret={a}/{b}", headers=new_headers)
  131. print(resp.content)
  132.  
  133.  
  134. new_headers = headers
  135. new_headers["Content-Type"] = "multipart/form-data"
  136. resp = sess.post(VALIDATE_URL + f"?secret={b}/{a}", headers=headers)
  137. print(resp.content)
  138.  
  139. new_headers["Content-Type"] = "application/x-www-form-urlencoded"
  140. resp = sess.post(VALIDATE_URL + "?secret={b}/{a}", headers=new_headers)
  141. print(resp.content)
  142.  
  143. new_headers["Content-Type"] = "text/plain"
  144. resp = sess.post(VALIDATE_URL + "?secret={b}/{a}", headers=new_headers)
  145. print(resp.content)
  146.  
  147. new_headers["Content-Type"] = "application/json"
  148. resp = sess.post(VALIDATE_URL + "?secret={b}/{a}", headers=new_headers)
  149. print(resp.content)
Add Comment
Please, Sign In to add comment