@app.route('/read') defread(): try: url = request.args.get('url') m = re.findall('^file.*', url, re.IGNORECASE) n = re.findall('flag', url, re.IGNORECASE) if m or n: return'No Hack' res = urllib.urlopen(url) return res.read() except Exception as ex: print(str(ex)) return'no response'
@app.route('/flag') defflag(): if session and session['username'] == 'fuck': returnopen('/flag.txt').read() else: return'Access denied'
if __name__ == '__main__': app.run(debug=True, host="0.0.0.0")
try:
url = request.args.get('url')
m = re.findall('^file.*', url, re.IGNORECASE)
n = re.findall('flag', url, re.IGNORECASE)
if m or n:
return 'No Hack'
```python import os import uuid from flask import Flask, request, session, render_template, Markup
flag = "" app = Flask( __name__, static_url_path='/', static_folder='static' ) app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "") + "*abcdefgh" if os.path.isfile("/flag"): with open("/flag", "r") as f: flag = f.read() os.remove("/flag")
@app.route('/', methods=['GET']) def index(): detailtxt = os.listdir('./details/') cats_list = [] for i in detailtxt: cats_list.append(i[:i.index('.')])
#encoding:utf-8 import os import re import random import uuid from flask import * from werkzeug.utils import secure_filename import yaml from urllib.request import urlopen
@app.route('/') defindex(): session['passport'] = 'YamiYami' return''' Welcome to HDCTF2023 Read somethings Here is the challenge Upload file Enjoy it pwd '''
@app.route('/pwd') defpwd(): returnstr(pwdpath)
@app.route('/read') defread(): try: url = request.args.get('url') m = re.findall('app.*', url, re.IGNORECASE) n = re.findall('flag', url, re.IGNORECASE) if m: return"re.findall('app.*', url, re.IGNORECASE)" if n: return"re.findall('flag', url, re.IGNORECASE)" res = urlopen(url) return res.read() except Exception as ex: print(str(ex)) return'no response'
defallowed_file(filename): for blackstr in BLACK_LIST: if blackstr in filename: returnFalse returnTrue
@app.route('/upload', methods=['GET', 'POST']) defupload_file(): if request.method == 'POST': if'file'notin request.files: flash('No file part') return redirect(request.url) file = request.files['file'] if file.filename == '': return"Empty file" if file and allowed_file(file.filename): filename = secure_filename(file.filename) ifnot os.path.exists('./uploads/'): os.makedirs('./uploads/') file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) return"upload successfully!" return render_template("index.html")
@app.route('/boogipop') defload(): if session.get("passport") == "Welcome To HDCTF2023": LoadedFile = request.args.get("file") ifnot os.path.exists(LoadedFile): return"file not exists" withopen(LoadedFile) as f: yaml.full_load(f) f.close() return"van you see" else: return"No Auth bro"
if __name__ == '__main__': pwdpath = os.popen("pwd").read() app.run(debug=False, host="0.0.0.0") print(app.config['SECRET_KEY'])