from flask import Flask, request, render_template_string
import sqlite3
import pickle
import os
app = Flask(__name__)
app.secret_key = os.urandom(16)
@app.route('/xss')
def xss():
name = request.args.get('name', '')
return f'
Hello {name}
'
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
cursor.execute(query)
return "Login success" if cursor.fetchone() else "Failed"
('/deserialize', methods=['POST'])
def deserialize():
data = request.get_data()
obj = pickle.loads(data)
return str(obj)
@app.route('/buffer_overflow')
def buffer_overflow():
buffer = ['A'] * 64
user_input = request.args.get('input', '')
for i in range(len(user_input)):
buffer[i] = user_input[i]
return ''.join(buffer)
@app.route('/read_file')
def read_file():
filename = request.args.get('file', '')
with open(filename, 'r') as f:
return f.read()
if __name__ == '__main__':
app.run(debug=True)