Trecerea de filtrele XSS

Introducere

XSS este una din cele mai intalnite vulnerabilitati web, atacurile XSS sunt de obicei ignorate de administratorii care nu stiu in cat de multe moduri se poate exploata aceasta vulnerabilitate.
In acest tutorial va voi explica cum sa treceti de filtrele xss prin cateva trickuri.

Lipsa filtrarii

Va voi arata un exemplu de o vulnerabilitate XSS nefiltrata, imaginati-va o paginahttp://localhost/page.php?name=Andrei , cu urmatorul cod:

Code:

Aceasta poate fi exploatata foarte simplu prin manipularea URI-ului.
Rezultat: http://localhost/page.php?name=


Filtrul str_replace()

Exemplul de acum este urmatorul, unde nu puteti trece de stringul script .
Code:

Nu este greu, doar cateva litere uppercase si am trecut.
Rezultat: http://localhost/page.php?name=

Filtrul htmlentitles()

Dupa parerea mea, asta e partea cea mai interesanta pentru ca foarte multe websiteuri folosesc functia htmlentitles() impotriva XSS-urilor, dar ea este folositoare numai impotriva double quotes. Va voi arata cum sa faceti bypass unui astfel de filtru, un exemplu de cod fiind:

Code:
";
?>
De obicei, pentru a trece de acest filtru, nu folositi < > sau ", ci folositi-va de HTML events.
Rezultat: http://localhost/page.php?img=.' onerror='alert("XSS")

Trecerea de un filtru folosind date URI

Acest mod de bypass nu este foarte cunoscut dar trece de aproape toate filtrele XSS, datele URI sunt de obicei folosite pentru ca imaginile sa fie tinute ca si text intr-un document HTML.
Am observat ca uneori se poate chiar trece de filtrul htmlspecialchars(). 
Pagina vulnerabila este facuta pentru a arata o imagine URI dintr-un URL :

HTML Code:
http://localhost/page.php?img=data:image/gif;base64,R0lGODlhAQABAIAAAP7//cnN0Y2VudGVyLmNvbS9zZWNpbWcucGhw=
Code:
';
?>
Prin modificarea tipului de date din image/gif in text/html si continutul datelor este posibila exploatarea unui XSS.
Rezultat: http://localhost/page.php?img=data:t...k8L3NjcmlwdD4=


Asta a fost tot legat de bypassul filtrelor XSS, multumesc pentru ca ati citit.

Niciun comentariu: