Baby Website Rick
Pickle Deserialization with a slight twist
Last updated
Pickle Deserialization with a slight twist
Last updated
We are presented with a web application that seems to point to some form of pickle deserialization attack from the start.
We can also see that a suspicious looking base64 string is encoded in the cookie, which seems to be a pickle object.
We can first try to decode the existing pickle object with pickle.loads
, adding the appropriate anti_pickle_serum
object.
We can now craft our payload based on this article , using the __reduce__
attribute to place our malicious code.
After some trial and error, i realized that os.system()
doesnt directly return my command output which is why i opted for subprocess.check_output
as it captures the standard output of the external command as a string and returns it.
Pickle's Protocol might matter in this case as well as the version of python that you are using as I only got it to work with python2 and protocol 0.