SEKAI CTF 复现
日本的ctf
my-flask-app-1
要学会从文档中找信息啊
题目进去的那个页面点到了也只是在浏览器的控制太输出一句点到了,确实没有用,但是挺有意思的
题目提供了文件读取的方法,但是不知道flag的位置,但是在app.py里提供了调试的条件,如果能触发debugger就可以获得一个python的交互环境
|
|
原本是想通过引起错误触发debug比如1/0,但是一直成功不了,看WP知道了一个/console的冷门用法,官方文档如下:
Werkzeug 是一个独立通用的底层库,flask就是在他的基础上加了jinja2模板引擎组成的框架。另外一提,flask,jinja2和werkzeug都是一个人写的,叫Armin Ronacher,。
Flask Debugger其真实、底层的身份是一个名为 DebuggedApplication 的 Werkzeug 中间件,而这个中间件的参数中有一个console_path = '/console'的参数(其实直接扫目录也扫的出来)
进入这个页面其实这个题目就写出来一半了,后面就是需要一个验证码pin,这个pin码的逻辑就是把你的身份信息打包哈希一下取最后几个数,但是部分信息是不公开的,就需要题目提供的LFI读取需要的
- mac地址 存储在
/sys/class/net/eth0/address - 机器id 存储在
/proc/sys/kernel/random/boot_id(boot_id 是Linux内核为每一次系统启动所生成的、独一无二的“会话身份证号”)
读到这两个信息可以写一个脚本用来得到pin,之后进入环境就可以执行命令了