main.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from flask import Flask, request, render_template_string
  2. import sqlite3
  3. import pickle
  4. import os
  5. app = Flask(__name__)
  6. app.secret_key = os.urandom(16)
  7. @app.route('/xss')
  8. def xss():
  9. name = request.args.get('name', '')
  10. return f'<h1>Hello {name}</h1>'
  11. @app.route('/login', methods=['POST'])
  12. def login():
  13. username = request.form['username']
  14. password = request.form['password']
  15. conn = sqlite3.connect('test.db')
  16. cursor = conn.cursor()
  17. query = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
  18. cursor.execute(query)
  19. return "Login success" if cursor.fetchone() else "Failed"
  20. ('/deserialize', methods=['POST'])
  21. def deserialize():
  22. data = request.get_data()
  23. obj = pickle.loads(data)
  24. return str(obj)
  25. @app.route('/buffer_overflow')
  26. def buffer_overflow():
  27. buffer = ['A'] * 64
  28. user_input = request.args.get('input', '')
  29. for i in range(len(user_input)):
  30. buffer[i] = user_input[i]
  31. return ''.join(buffer)
  32. @app.route('/read_file')
  33. def read_file():
  34. filename = request.args.get('file', '')
  35. with open(filename, 'r') as f:
  36. return f.read()
  37. if __name__ == '__main__':
  38. app.run(debug=True)