import os
from flask import Flask, request, render_template_string, Response
app = Flask(__name__)
# La FLAG ora è nascosta nelle variabili d'ambiente del server!
# Nel sorgente nessuno potrà leggerla in chiaro.
app.config['SECRET_FLAG'] = os.environ.get('CTF_FLAG', 'FLAG{NOT_FOUND_CHECK_ENV}')
BLACK_LIST = ['config', 'class', 'mro', 'subclasses', 'import', 'os', 'system', 'flag', 'eval', 'exec', 'get_flashed_messages']
@app.route('/')
def index():
return '''
AirGate OS - VIP Boarding Terminal
✈️ AirGate OS v3.1 - VIP Ticket Terminal
Welcome, Operator. Generate your custom VIP Boarding Pass below.
System Status: SECURE. [Inspect Source Code]
'''
@app.route('/source')
def source():
"""Mostra il codice sorgente per l'analisi Graybox."""
with open(__file__, 'r') as f:
return Response(f.read(), mimetype='text/plain')
@app.route('/render', methods=['POST'])
def render():
name = request.form.get('name', '')
name_lower = name.lower()
for word in BLACK_LIST:
if word in name_lower:
return f"🚨 SECURITY ALERT: Keyword '{word}' is blacklisted!
", 400
template = f'''
🎫 VIP BOARDING PASS GENERATED
Passenger: {name}
Flight: EU-2026 | Gate: A01 | Status: BOARDING
'''
return render_template_string(template)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)