关于jinjia2模板注入 {{1+1}}报错而{{7*7}}正确执行的问题
我运行了一个简单的python flask APP。文件内容如下:
from flask import Flaskfrom flask import request, render_template_string, render_template
app = Flask(__name__)
@app.route('/login')
def hello_ssti():
person = {
'name': 'hello',
'secret': '7d793037a0760186574b0282f2f435e7'
}
if request.args.get('name'):
person['name'] = request.args.get('name')
template = '<h2>Hello %s!</h2>' % person['name']
return render_template_string(template, person=person)
if __name__ == "__main__":
app.run(debug=True)
我尝试进行jinja2模板注入。当我输入 name={{7*7}}时,注入成功,显示49.但是当我尝试注入{{1+1}}时,应用debug模式会报错,如下图所示
请问这是什么原因,为什么{{1+1}}和{{7*7}}不一样呢?
谢谢。
回答:
url中没有对+进行编码%2b,被认为是空格。
当访问{{2%2b2}}时,会正常返回4。
以上是 关于jinjia2模板注入 {{1+1}}报错而{{7*7}}正确执行的问题 的全部内容, 来源链接: utcz.com/p/937915.html