|
1 | 1 | import flask |
2 | 2 | from flask import render_template |
| 3 | +import sqlite3 |
3 | 4 |
|
4 | 5 | from challenge import app, forms |
5 | 6 |
|
| 7 | +def get_db_connection(): |
| 8 | + conn = sqlite3.connect("database.db") |
| 9 | + conn.row_factory = sqlite3.Row |
| 10 | + return conn |
| 11 | + |
| 12 | +def get_db_connection_3(): |
| 13 | + conn = sqlite3.connect("challenge3.db") |
| 14 | + conn.row_factory = sqlite3.Row |
| 15 | + return conn |
| 16 | + |
6 | 17 |
|
7 | 18 | @app.route('/', methods=['GET']) |
8 | 19 | def index() -> str: |
9 | 20 | return render_template("index.html") |
10 | 21 |
|
11 | | -@app.route('/1', methods=['GET']) |
| 22 | +@app.route('/1', methods=['GET', 'POST']) |
12 | 23 | def ch_1() -> str: |
13 | | - return render_template("challenge1.html") |
14 | | - |
15 | | -@app.route('/2', methods=['GET', 'POST']) |
16 | | -def ch_2() -> str: |
17 | 24 | form = forms.LoginForm() |
| 25 | + response = "" |
18 | 26 | if flask.request.method == 'POST': |
19 | | - if form.username.data == "admin" and form.password.data == "admin": |
20 | | - return render_template("challenge2.html", form=form, response="flag{some-flag-idk-lol}") |
| 27 | + username = form.username.data |
| 28 | + password = form.password.data |
| 29 | + |
| 30 | + conn = get_db_connection() |
| 31 | + query = f"SELECT * FROM users WHERE username = '{username}' AND password = '{password}'" |
| 32 | + result = conn.execute(query).fetchall() |
| 33 | + conn.close() |
| 34 | + |
| 35 | + if result: |
| 36 | + response = f"flag{{simple_sql_challenge}}" |
21 | 37 | else: |
22 | | - return render_template("challenge2.html", form=form, response="Incorrect username/password") |
23 | | - return render_template("challenge2.html", form=form) |
| 38 | + response = "Invalid credentials." |
| 39 | + |
| 40 | + return render_template("challenge1.html", form=form, response=response) |
| 41 | + |
24 | 42 |
|
0 commit comments