{% extends "base.html" %} {% block content %}

Cross-site Scripting

Voor veel van deze opdrachten heb je een eigen website nodig. Als je niet een eigen website hebt kan je natuurlijk ook gebruik maken van de student.aii.avans.nl webruimte

Zorg dat je de VM op NAT zet zodat deze de de laatste opdrachten kan dowloaden.

Bank

We gaan opnieuw kijken naar de Bank website. Ze hebben tijdelijk hun login formulier uitgeschakeld, maar daarmee zijn ze nog steeds niet veilig van hun beveiligingsproblemen.

Ga naar de "Bank (xss)" pagina voor de volgende opdrachten.

Maak een URL die Javascript aan de pagina toevoegd zodat deze 'XSS' in een alert-dialoog weergeeft.
5 punten
Maak een URL die een nep inlogformulier laat zien. Bij het verzenden van dit formulier wordt de informatie naar jouw eigen website verstuurd!
10 punten
Bekijk de broncode: https://github.com/Avans/Security-Workshop/blob/master/bank/message.php#L38 Voeg een fix toe om deze aanval te voorkomen.
10 punten

Webshop

Leaky heeft zijn webshop uitgebreid: je kan nu op de product pagina's doorklikken op de plaatjes voor een grote ingezoomde afbeelding. Op deze pagina is echter ook een XSS beveiligingslek.

De website heeft nu ook PHP session cookies waar jij als hacker natuurlijk erg in geïnteresseerd bent.

Verander de pagina zodat deze automatisch de cookie naar jouw eigen website toestuurt.

Hint 1: Bekijk de HTML, zoek naar plekken waar de parameter uit de URL worden gebruikt

Hint 2: Cookies kan je in JavaScript uitlezen met document.cookie

Hint 3: Onderzoek het 'onload' attribuut van een img tag in HTML.

Hint 4: Als de src niet naar een geldige afbeelding wijst zal de onload niet uitgevoerd worden

Hint 5: Als je in een URL het + tekentje gebruikt wordt dit vertaald naar een spatie. Als je ook echt een + wilt gebruiken moet je de url encoded versie gebruiken: %2B

Met welke URL kan je de sessie cookies van gebruikers ontfutselen? (Dus doorsturen naar je eigen site)
10 punten
Verander de url naar image_zoom_escapehtml.php. Alle speciale HTML tekens (<>"&) zijn nu geëscapet. Maar het is nog steeds mogelijk om een aanval uit te voeren! Maak een nieuwe URL die de sessie cookie naar je eigen website verstuurd. Let goed op de quotejes.
10 punten
Bekijk de broncode op https://github.com/Avans/Security-Workshop/blob/master/webshop/image_zoom_escapehtml.php#L55 Voeg een simpele fix toe die dit probleem oplost. Je kan dit op twee manieren doen: 1. HTML aanpassen 2. PHP aanpassen (lees documentatie op http://php.net/htmlspecialchars )
10 punten

Nieuws

We gaan nu een aanval doen op een populaire nieuwssite. Ga naar de "Nieuws" pagina voor de volgende opdrachten.

Deze site heeft geen plekken waar we via de URL's javascript aan de pagina kunnen toevoegen. Bovendien zijn de administrators van deze site veel te slim om op rare links te klikken in vage e-mailtjes. We gaan het via een stored XSS attack te doen.

1. Voeg via de reacties javascript aan de pagina toe die cookies steelt. Je moet deze cookies nu ook echt naar een eigen server sturen om de opdracht te kunnen maken. Zet op een eigen website een scriptje die alle requests in een bestandje/database logt zodat je daar later de cookies kunt uitlezen. Voorbeeld: student.aii.avans.nl/ICT/pwagener/logcookie.php?PHPSESSID=2394fh3dk

2. Je kan nu een ingelogde administrator naar de pagina (met jouw javascript) laten kijken door een melding te maken. Onderaan de reactiepagina staat een link (je kan ook rechtstreeks naar /nieuws/admincheck.php).

3. Als het goed is heb je nu de cookie van de administrator gestolen. Verander in de browser jouw eigen cookie naar de cookie van de administrator. Zoek naar een browserplugin als je dit niet al kan met jouw browser.

4. Bekijk opnieuw de reactiepagina. Je bent nu ingelogd als de administrator!

Tip: op /nieuws/reset.php is een speciale pagina die al het commentaar wist. Dit is handig als je jouw aanval wil verbeteren.

(Let op dat je de VM op NAT hebt ingesteld zodat deze verbinding kan maken naar het internet)

Welke reactie heb je geplaatst waardoor je achter de cookie van de administrator kwam?
10 punten
Wat is de geheime code die alleen administrators kunnen zien?
5 punten
Plak het script dat je op je eigen website hebt gebruikt waarmee je de cookie van de admin hebt vastgelegd.
10 punten

Hacking Lab

Maak de opgave "6112 - OWASP 2010 - A2 - Cross-Site Scripting" uit het OWASP Top Ten event.

Beschrijf hoe je de aanval hebt uitgevoerd. Hoe had deze aanval voorkomen kunnen worden?
15 punten
{% endblock %}