Nyan Cat!
@app.get("/cat")
def cat():
file = request.args.get("file", "app.py")
if not Path(file).exists():
return "🚫"
if "flag" in file:
return "🚩"
return subprocess.run(
["cat", file],
capture_output=True,
timeout=1,
stdin=open("flag.txt"), # !!
).stdout.decode()
こんな感じでファイルが読める感じのサイトとなっている。

ファイルを読む条件は2つで
subprocess.runの引数をよく見ると、標準入力に”flag.txt”を与えている。
cat は標準入力とファイル指定ではファイル側が優先されるので、
入力を示すファイルを与えれば解決
解法1