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 的文本,返回给浏览器,这样做的好处展示数据快,大大提升效率,相当于动态网页。
|