feat: add snake-safe challenge
This commit is contained in:
parent
36426b1807
commit
ee4c9d49cb
6
snake-safe/Dockerfile
Normal file
6
snake-safe/Dockerfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
FROM ubuntu:20.04
|
||||||
|
RUN apt-get update && apt-get install -y python3 python3-pip
|
||||||
|
RUN pip3 install pyinstaller
|
||||||
|
COPY safe.py ./safe.py
|
||||||
|
RUN pyinstaller -F ./safe.py
|
||||||
|
CMD ["sleep", "10000"]
|
11
snake-safe/README.md
Normal file
11
snake-safe/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# snake-safe
|
||||||
|
## Text
|
||||||
|
I don’t trust those fancy password managers. They’re just waiting to steal your data and sell it to the Illuminati or something. So, I built my own. No corporate nonsense, no secret data deals—just pure, security.
|
||||||
|
|
||||||
|
Nobody can crack this.
|
||||||
|
|
||||||
|
## Files
|
||||||
|
safe (the binary, nothing else)
|
||||||
|
|
||||||
|
## How to Deploy
|
||||||
|
/ (the docker file is not for deployment)
|
15
snake-safe/SOLUTION.md
Normal file
15
snake-safe/SOLUTION.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
## Difficulty
|
||||||
|
medium 30/100
|
||||||
|
|
||||||
|
## Category
|
||||||
|
Reversing
|
||||||
|
|
||||||
|
## How To Solve
|
||||||
|
|
||||||
|
This is a binary compiled from a python file using pyinstaller.
|
||||||
|
Pyinstaller actually bundles with a script that can extract the
|
||||||
|
python PYC file. Since an older version of python was used, this
|
||||||
|
can then be decompiled using decompile6 or even `https://pylingual.io/`
|
||||||
|
|
||||||
|
## Flag
|
||||||
|
IGCTF{snaky-stuff}
|
1
snake-safe/requirements.txt
Normal file
1
snake-safe/requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
pyinstaller
|
BIN
snake-safe/safe
Executable file
BIN
snake-safe/safe
Executable file
Binary file not shown.
83
snake-safe/safe.py
Normal file
83
snake-safe/safe.py
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
import time, sys
|
||||||
|
|
||||||
|
SUPER_SECURE_PASS = "ea44eb3b-ea83-4779-807b-f7a5776d2e8d"
|
||||||
|
|
||||||
|
|
||||||
|
def print_safe():
|
||||||
|
safe = r"""
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
@@@@@ @@@@@
|
||||||
|
@@@@@ @@@@@
|
||||||
|
@@@@@ #@@@@@@% +@%: @@@@@
|
||||||
|
@@@@@ %@@@#@@@= %@@@@@+ @@@@@
|
||||||
|
@@@@@ @@@#*@@@@@@@@#@@@@%@@@% @@@@@
|
||||||
|
@@@@@ *@@@+%@@@@@@@@@@#=@@@@: @@@@@
|
||||||
|
@@@@@ :@@@@@- =#-#@@@# @@@@@
|
||||||
|
@@@@@ +@@@% #@@@# @@@@@
|
||||||
|
@@@@@ +@@@+ +@@@@@@@@- =@@@* @@@@@
|
||||||
|
@@@@@ #@@@@@@@@* :@@@@%##@@@@@ *@@@: @@@@@
|
||||||
|
@@@@@ @@@@@@@@@ @@@% :@@@* @@@@@@@%+ @@@@@
|
||||||
|
@@@@@ @@@@%%##= :@@@+ *@@% *@@@@@@@@ @@@@@
|
||||||
|
@@@@@ @@@@@@@@@: @@@@ -@@@* *%%%%%@@% @@@@@
|
||||||
|
@@@@@ @@@# @@@@@@@@@@@@ #@@@@@@@@# @@@@@
|
||||||
|
@@@@@ =@@@* +@@@@@@@@- *@@@+ :-== @@@@@
|
||||||
|
@@@@@ =@@@@: -@@@@+ @@@@@
|
||||||
|
@@@@@ #@@@+=*= %@@@@: @@@@@
|
||||||
|
@@@@@ %@@@+@@@@@@@@@@@@=@@@* @@@@@
|
||||||
|
@@@@@ %@@@#@@@@#@@@@@@@@%+@@@+ @@@@@
|
||||||
|
@@@@@ -@@@@@@@ -@@@@@@@@ @@@@@
|
||||||
|
@@@@@ =@@% =@@@@@+ @@@@@
|
||||||
|
@@@@@ @@@@@
|
||||||
|
@@@@@ @@@@@
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
__
|
||||||
|
___ ___ ___ _ _ _ __ ___ ___ __ _ / _| ___
|
||||||
|
/ __|/ _ \/ __| | | | '__/ _ \ / __|/ _` | |_ / _ \
|
||||||
|
\__ \ __/ (__| |_| | | | __/ \__ \ (_| | _| __/
|
||||||
|
|___/\___|\___|\__,_|_| \___| |___/\__,_|_| \___|
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
print(safe)
|
||||||
|
|
||||||
|
|
||||||
|
def print_flag():
|
||||||
|
print("Your passwords:")
|
||||||
|
passwords = """
|
||||||
|
+-----------+-----------------------+
|
||||||
|
| title | password |
|
||||||
|
+-----------+-----------------------+
|
||||||
|
| mom email | coolmom1967 |
|
||||||
|
| flag | IGCTF{snaky-stuff} |
|
||||||
|
| wifi | pass123 |
|
||||||
|
+-----------+-----------------------+
|
||||||
|
"""
|
||||||
|
print(passwords)
|
||||||
|
|
||||||
|
|
||||||
|
def print_wrong():
|
||||||
|
print("WRONG, locking you out")
|
||||||
|
|
||||||
|
|
||||||
|
def request_password():
|
||||||
|
p = input("Password > ")
|
||||||
|
|
||||||
|
for _ in range(5):
|
||||||
|
print(".", end="")
|
||||||
|
sys.stdout.flush()
|
||||||
|
time.sleep(1)
|
||||||
|
print("")
|
||||||
|
|
||||||
|
if p == SUPER_SECURE_PASS:
|
||||||
|
print_flag()
|
||||||
|
else:
|
||||||
|
print_wrong()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print_safe()
|
||||||
|
request_password()
|
Loading…
Reference in New Issue
Block a user