[网鼎杯 2020 白虎组]PicDown
这题目还挺怪的,?url=/flag直接读取是非预期解
正常一步一步做下来是先看/proc/self/cmdline,查看本地使用过的命令,然后/proc/self/cwd/app.py看源码
from flask import Flask, Response
from flask import render_template
from flask import request
import os
import urllib
app = Flask(__name__)
SECRET_FILE = "/tmp/secret.txt"
f = open(SECRET_FILE)
SECRET_KEY = f.read().strip()
os.remove(SECRET_FILE)
@app.route('/')
def index():
return render_template('search.html')
@app.route('/page')
def page():
url = request.args.get("url")
try:
if not url.lower().startswith("file"):
res = urllib.urlopen(url)
value = res.read()
response = Response(value, mimetype='application/octet-stream')
response.headers[