BrowExt - XSS Example
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
In hierdie opstelling word 'n inhoudskrip geïmplementeer om 'n Iframe te instantiëer, wat 'n URL met navraagparameters as die bron van die Iframe insluit:
'n Publiek toeganklike HTML-bladsy, message.html
, is ontwerp om dinamies inhoud by die dokumentliggaam te voeg gebaseer op die parameters in die URL:
'n Kwaadwillige skrip word op 'n teenstander se bladsy uitgevoer, wat die content
parameter van die Iframe se bron aanpas om 'n XSS payload in te voer. Dit word bereik deur die Iframe se bron op te dateer om 'n skadelike skrip in te sluit:
'n Oormatig toelaatbare Inhoudsekuriteitsbeleid soos:
laat die uitvoering van JavaScript toe, wat die stelsel kwesbaar maak vir XSS-aanvalle.
'n Alternatiewe benadering om die XSS te provoceer, behels die skep van 'n Iframe-element en die instelling van sy bron om die skadelike skrip as die content
parameter in te sluit:
Hierdie voorbeeld is geneem uit die oorspronklike pos skrywe.
Die kernprobleem ontstaan uit 'n DOM-gebaseerde Cross-site Scripting (XSS) kwesbaarheid geleë in /html/bookmarks.html
. Die problematiese JavaScript, deel van bookmarks.js
, word hieronder uiteengesit:
This snippet fetches the value from the txtName
input field and uses string concatenation to generate HTML, which is then appended to the DOM using jQuery’s .append()
function.
Tipies sou die Chrome uitbreiding se Inhoudsekuriteitsbeleid (CSP) sulke kwesbaarhede voorkom. egter, as gevolg van CSP verslapping met ‘unsafe-eval’ en die gebruik van jQuery se DOM manipulasie metodes (wat globalEval()
gebruik om skripte aan eval()
oor te dra tydens DOM invoeging), is uitbuiting steeds moontlik.
Terwyl hierdie kwesbaarheid beduidend is, is die uitbuiting gewoonlik afhanklik van gebruikersinteraksie: die bladsy besoek, 'n XSS payload invoer, en die “Voeg by” knoppie aktiveer.
Om hierdie kwesbaarheid te verbeter, word 'n sekondêre clickjacking kwesbaarheid uitgebuit. Die Chrome uitbreiding se manifest toon 'n uitgebreide web_accessible_resources
beleid:
Notabel is die /html/bookmarks.html
bladsy geneig tot framing, en dus kwesbaar vir clickjacking. Hierdie kwesbaarheid word benut om die bladsy binne 'n aanvaller se webwerf te raam, dit te oorvleuel met DOM-elemente om die koppelvlak misleidend te herontwerp. Hierdie manipulasie lei daardeur dat slagoffers onbewustelik met die onderliggende uitbreiding interaksie het.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)