Shellsec

Fuld version: XSS script injection løsningsforslag til udfordring
Du ser lige nu en skrabet udgave af vores indhold. Se den fulde version med ordentlig formatering.
Dette er mit løsningsforslag til September 2015 - XSS-udfordring
Problemet med denne webside er at Referer headeren er reflected på siden, og den er ikke sanitized. Man kunne måske fristes til at tro, brugeren ikke kan kontrollere indholdet, og derfor undlader at kontrollere indholdet. Den header viser normalt, hvilken adresse man kommer fra, når man besøger udfordringssiden. Derfor er denne header ikke til stede, hvis man åbner et nyt browser vindue eller åbner en ny tom fane, og så paster linket til udfordringen ind der. Men der er ikke noget i vejen for, selv at tilføje denne, eller andre headers.

Når man ser på sidens source, vil sårbarheden ved første besøg se ud som følger:
Citer:<a href="">Back</a>

Script injection på denne side, sker mellem gåseøjnene i ovenstående href tag og det er pænest at sørge for, man ikke ødelægger sidens struktur. Man skal forholde sig til den eksisterende html og sørge for, at ", ' og andre tags/elementer stadig virker.

Citer:<a href="<injetion sker her>">Back</a>

Jeg har brugt TamperData til at tilføje en "Referer" header med følgende indhold:
Citer:http://eb.dk/" onmouseover="document.getElementsByTagName('p')[0].innerHTML='XSSed you'" alt="iTick

Og det bliver så til:
Citer:<a href="http://eb.dk/" onmouseover="document.getElementsByTagName('p')[0].innerHTML='XSSed you'" alt="iTick">Back</a>

Når jeg så lader denne request blive sendt til serveren, før jeg følgende:
[attachment=127]
Det gør at jeg kan hover over "Back", og få teksten til at blive "XSSed you" og linket pejer på eb.dk, i stedet for den side man "kom fra".
[attachment=128]

Dette er mest for at vise, man kan kontrollere alle elementerne på siden. Ajax kan derfor blive interessant også.
Hvis man har lyst, kan man tilføje elementer som f.eks. en form, ændre og slette elementer.
Uden tvivl nyttigt for en masse af de nye medlemmere, så snart de er færdige med at æde deres McD.
Der må da være kø på McD i disse dage. lol.