Perusteet haltuun

Murtaudu verkkosivulle

Helppo
15 min

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.

hakatemia pro

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ä.