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.
#!/usr/bin/python3
# Kirjasto tietokannan hallintaan
from moduulit import tietokanta
# Flask verkkosivu kirjastot
from flask import Flask, render_template, redirect, request
from flask import make_response
app = Flask(__name__)
haku = tietokanta.Haku()
@app.route("/")
def juuri():
# Haetaan tunniste evaste
tunniste = request.cookies.get('tunniste')
# Jos tunniste on oikea, kayttaja on kirjautunut
if tunniste == "ADMIN1":
# Haetaan hallintanakyman tiedot
tiedot = haku.haeTiedot()
return render_template("hallinta.html", tiedot=tiedot)
# Muuten ohjataan kirjautumaan
else:
return redirect("/login")
@app.route("/login", methods=["GET","POST"])
def kirjaudu():
if request.method == "GET":
failed = request.args.get("vaarin")
return render_template("kirjaudu.html", failed=failed)
elif request.method == "POST":
# Varmistetaan, etta tunnukset ovat oikein
kayttaja = request.form.get("kayttaja")
salasana = request.form.get("salasana")
oikein = haku.varmistaTunnus(kayttaja, salasana)
if oikein:
# asetetaan istuntotunniste
vastaus = make_response("blank.html")
vastaus.set_cookie("tunniste", "ADMIN1")
return vastaus
else:
return redirect("/login?vaarin=kylla")
if __name__ == '__main__':
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.
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.