ssti
主要为python
的一些框架 jinja2 mako tornado django
,PHP框架smarty twig
,java框架jade velocity
等等使用了渲染函数时,由于代码不规范或信任了用户输入而导致了服务端模板注入,模板渲染其实并没有漏洞,主要是程序员对代码不规范不严谨造成了模板注入漏洞,造成模板可控。
http://114.67.246.176:10828/?flag={{config}}
?flag={{config.SECRET_KEY}}
{{}}
是变量包裹标识符。{{}}
并不仅仅可以传递变量,还可以执行一些简单的表达式。
You know, in the flask, We often set a
secret_key variable.
python框架类web题,需要了解flask的基本文件配置和变量使用。
题目提示了可以通过参数secret_key
获取,在配置文件中的参数都是大写的,且可以通过config.
参数来获取该参数。config.item()
可以获取配置文件里的所有参数。
SSTI
(模板注入),如果在一个页面中 php
代码与 html
代码混合在一起,在很多时候都会造成不便,用模板引擎可以让 php
代码和 html
代码进行分离。
通俗点理解:拿到数据,塞到模板里,然后让渲染引擎将赛进去的东西生成 html
的文本,返回给浏览器,这样做的好处展示数据快,大大提升效率,相当于动态网页。