Repository navigation
Expand file tree
/
Copy pathgetCode.py
More file actions
58 lines (49 loc) · 1.62 KB
/
Copy pathgetCode.py
File metadata and controls
58 lines (49 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import argparse
import json
from pathlib import Path
from urllib.parse import urlsplit
import requests
from getmail import generate_email
SCRIPT_VERSION = "1.0.3"
CAPTURE_FILE = "captured_send_code_params.json"
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("email", nargs="?", default=None)
return parser.parse_args()
def load_capture_payload():
capture_path = Path(__file__).with_name(CAPTURE_FILE)
capture_data = json.loads(capture_path.read_text(encoding="utf-8"))
split_url = urlsplit(capture_data["url"])
url = f"{split_url.scheme}://{split_url.netloc}{split_url.path}"
return {
"url": url,
"params": dict(capture_data["params"]),
"headers": dict(capture_data["headers"]),
"cookies": dict(capture_data["cookies"]),
"data": dict(capture_data["post_data"])
}
def main():
args = parse_args()
payload = load_capture_payload()
email = args.email or generate_email(local_length=8, domain="sunix.eu.org")
payload["data"]["email"] = email
session = requests.Session()
session.trust_env = False
try:
response = session.post(
payload["url"],
headers=payload["headers"],
cookies=payload["cookies"],
params=payload["params"],
data=payload["data"],
timeout=20,
proxies={"http": None, "https": None}
)
print(email)
print(response.text)
print(response)
except requests.exceptions.RequestException as error:
print(type(error).__name__)
print(error)
if __name__ == "__main__":
main()