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