-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathsetup-challenge.py
50 lines (37 loc) · 1.49 KB
/
setup-challenge.py
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
################################################################################
# Configure a box for the web css example challenge.
################################################################################
import sys
import os
import re
import json
def main():
# picofy flag and append to stylesheet ================================
flag = os.environ.get("FLAG")
if flag == "":
print("Flag was not read from environment. Aborting.")
sys.exit(-1)
else:
# Get hash part
flag_rand = re.search("{.*}$", flag)
if flag_rand == None:
print("Flag isn't wrapped by curly braces. Aborting.")
sys.exit(-2)
else:
flag_rand = flag_rand.group()
flag_rand = flag_rand[1:-1]
flag_rand = flag_rand.zfill(8)
new_flag = "picoCTF{1n5p3t0r_ftw_" + flag_rand + "}"
with open("/usr/share/nginx/html/style.css", "a") as f:
f.write('/* ' + new_flag + ' */')
# =====================================================================
# Create and update metadata.json =====================================
metadata = {}
metadata['flag'] = str(new_flag)
json_metadata = json.dumps(metadata)
with open("/challenge/metadata.json", "w") as f:
f.write(json_metadata)
# =====================================================================
# =============================================================================
if __name__ == "__main__":
main()