Fragetext: (Die Frage kommt aus der ITS-Klausur vom 13.02.2023)
In den folgenden zwei Aufgaben wird User Input, gekennzeichnet durch [Input], vom Server reflektiert. Soweit nicht anders angegeben, wird [Input] mittels Textersetzung eingesetzt.
(a) (2 Pkt)
Wie könnte ein User Input aussehen, um mittels XSS-Schwachstelle prompt() aufzurufen?
<img src="/public/files/[Input]">
(b) (3 Pkt)
Überprüfe einen weiteren Input innerhalb des innerHTML Strings. Die folgenden Zeichen werden jedoch HTML encoded: " < > &
<div id=random> </div>
<script>
window.random.innerHTML ='[Input]'
</script>
Ist der Code sicher oder gibt es einen Payload, der funktionieren könnte? Gib für den letzteren Fall einen Payload an.
Begründung/Erklärung:
Für beide Fragen wird implizit das Verständnis von XSS und spezieller reflected-XSS Schwachstellen abgefragt. Es sind praktische Aufgaben, für die man ein Verständnis von JS (oder generell Programmiersprachen) haben muss. Speziell (b) zeigt, wie typische „Gegenmaßnahmen“ umgangen werden können und zeigt ein tieferes Verständnis der Ausführung von JS im Browser.