ivory (@ivory522) 在 Pickle反序列化攻击手法详解(Python) 中发帖
Pickle
pickle反序列化比java和php的危害要大不少
因为利用起来比较容易,很轻松可以RCE
实际应用场景中经常和其它基础漏洞配合起来使用
例如ssrf写redis序列化数据后被反序列化出恶意对象等
在很多比赛或漏挖中出现的llm应用也经常和pickle相关
能够序列化的对象
None
bool
int,float,complex
元素全部为可打包对象的tuple、list、set 和 dict
函数
使用def定义的模块顶层的函数(lambda不行)
内置函数
类
使用class定义在模块顶层的
实例对象
__dict__属性和__getstate__()函数的返回值为可序列化对象
PS:对于不能序列化的数据会抛出PicklingError异常
opcode和Bytecode
pickle的序列化数据是一段字节流
字节流由一系列pickl...