Murtaudu verkkosivulle
Harjoittele oppimaasi
Tehtävä
Jos sinulla on hankaluuksia päästä alkuun tai jäät pahasti jumiin johonkin kohtaan, niin videolta pitäisi saada apuja! - Suosittelemme kuitenkin yrittämään ensin itse, ennen kuin katsot ratkaisun videolta.
Asiakas Security Oy on palkannut sinut testaamaan heidän sisäisen hallintajärjestelmän turvallisuutta. Tehtäväsi on etsiä sovelluksesta heikkous ja murtautua järjestelmään sisään.
Asiakas suostui myös lähettämään sinulle osan järjestelmän lähdekoodeista, mutta ei kaikkea.
1#!/usr/bin/python3
2
3# Kirjasto tietokannan hallintaan
4from moduulit import tietokanta
5
6# Flask verkkosivu kirjastot
7from flask import Flask, render_template, redirect, request
8from flask import make_response
9
10app = Flask(__name__)
11haku = tietokanta.Haku()
12
13@app.route("/")
14def juuri():
15 # Haetaan tunniste evaste
16 tunniste = request.cookies.get('tunniste')
17 # Jos tunniste on oikea, kayttaja on kirjautunut
18 if tunniste == "ADMIN1":
19 # Haetaan hallintanakyman tiedot
20 tiedot = haku.haeTiedot()
21 return render_template("hallinta.html", tiedot=tiedot)
22 # Muuten ohjataan kirjautumaan
23 else:
24 return redirect("/login")
25
26@app.route("/login", methods=["GET","POST"])
27def kirjaudu():
28 if request.method == "GET":
29 failed = request.args.get("vaarin")
30 return render_template("kirjaudu.html", failed=failed)
31 elif request.method == "POST":
32 # Varmistetaan, etta tunnukset ovat oikein
33 kayttaja = request.form.get("kayttaja")
34 salasana = request.form.get("salasana")
35 oikein = haku.varmistaTunnus(kayttaja, salasana)
36 if oikein:
37 # asetetaan istuntotunniste
38 vastaus = make_response("blank.html")
39 vastaus.set_cookie("tunniste", "ADMIN1")
40 return vastaus
41 else:
42 return redirect("/login?vaarin=kylla")
43
44
45if __name__ == '__main__':
46 app.run(debug=False, host='0.0.0.0')Jos tehtävä tuntuu vaikealta, eikä näytä ratkeavan millään, niin suosittelemme tutustumaan myös Python-ohjelmointi sekä Web-kehityksen perusteet - kurssiin.
Vihje
Tehtävät
Flag
Löydä lippu (flag) labraympäristöstä ja syötä se alle.
Hakkeroinnin oppiminen alkaa tästä
Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.