tags: DOM_xss stored_xss reflected_xss


La differenza principale tra DOM-Based e le altre due (Stored e Reflected) è nel modo in cui l’attacco viene elaborato, piuttosto che dove si trova.

  1. DOM-Based XSS:

    • Viene innescata direttamente sul client, tramite manipolazione del DOM (Document Object Model) dal JavaScript della pagina.
    • Si può trovare tramite URL, ma può apparire anche in altre interazioni client-side (come click, input dinamici, o manipolazioni di hash # nella barra dell’URL).
    • Caratteristica chiave: Il payload non viene elaborato dal server ma solo dal browser, sfruttando le operazioni JavaScript che modificano il DOM.
  2. Stored XSS:

    • L’attacco viene memorizzato nel database del server e poi caricato e visualizzato per tutti gli utenti.
    • Di solito si verifica quando un utente inserisce un payload in un form (come commenti o profili utente) che il server memorizza e restituisce ad altri.
    • Caratteristica chiave: Persiste sul server e colpisce più utenti.
  3. Reflected XSS:

    • Il payload viene riflesso dal server al client nella stessa richiesta, solitamente tramite input come campi di ricerca o parametri URL.
    • Non è memorizzato sul server, quindi non persiste come la Stored XSS e si attiva solo in una singola interazione.
    • Caratteristica chiave: La risposta riflette immediatamente l’input dell’utente senza memorizzarlo

Per vedere come sfruttare queste vulnerabilità vai alla pagina Payloads Standard