[WesternCTF2018]shrine模板注入
题目打开查看源码,给的python代码,看到flask,想到模板注入
可以这样测试:
看源码app.config['FLAG'] = os.environ.pop('FLAG')
推测{
{config}}可查看所有app.config内容,但是这题设了黑名单[‘config’,‘self’]并且过滤了括号
不过python还有一些内置函数,比如url_for
和get_flashed_messages
url_for
current_app意思应该是当前app,那我们就当前app下的config:
flag已经出来了
get_flashed_message
同理:
/shrine/{
{
get_flashed_messages.__globals__['current_app'].config['FLAG']}}
参考链接:
https://www.cnblogs.com/wangtanzhi/p/12238779.html
https://www.jianshu.com/p/aef2ae0498df