Untitled

문제 파일을 다운받고, 서버로 들어가보자.

Untitled

….?

진짜 아무것도 없길래 당황함…….

코드 분석부터 해보자…일단 url을 이용하는 문제인 듯 싶다.

import os, subprocess
from functools import wraps
from flask import Flask, request

app = Flask(__name__)
API_KEY = os.environ.get('API_KEY', None)

def key_required(view):
    @wraps(view)
    def wrapped_view(**kwargs):
        apikey = request.args.get('API_KEY', None)
        if API_KEY and apikey:
            if apikey == API_KEY:
                return view(**kwargs)
        return 'Access Denied !'
    return wrapped_view

@app.route('/', methods=['GET'])
def index():
    return 'API Index'

@app.route('/file', methods=['GET'])
def file():
    path = request.args.get('path', None)
    if path:
        data = open('./files/' + path).read()
        return data
    return 'Error !'

@app.route('/admin', methods=['GET'])
@key_required
def admin():
    cmd = request.args.get('cmd', None)
    if cmd:
        result = subprocess.getoutput(cmd)
        return result
    else:
        return 'Error !'

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)