22-05-2016, 12:45
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:
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.
Jeg har brugt TamperData til at tilføje en "Referer" header med følgende indhold:
Og det bliver så til:
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.
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.