jinja2模板引擎介绍
- jinja2:是 Python 下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。
- 模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名。
- {
{}} 来表示变量名,这种 {
{}} 语法叫做变量代码块
注入原理
jinja2模板引擎中有{ {}}变量代码块语法,该语法能将里面的参数当作代码执行,所以可以构造对应的payload达到代码执行的效果
环境搭建
这里就在windows下使用python环境搭建一个基于flask框架的web
pip install flask #安装flask框架
from flask import Flask,request
from jinja2 import Template
app=Flask(__name__)
@app.route('/index')
def hello():
name=request.args.get('name','world')
t=Template('Hello