Omenili smo že dve vrsti izkoriščanja XSS : odraženi in shranjeni.Vsem je skupna lastnost, da se nevarna koda po vstavitvi izvede po odgovoru strežnika, kar pomeni, da je napaka na strani strežnika.strežnik.strežnik. Obstaja še ena vrsta izkoriščanja XSS, ki je v nasprotju s to funkcijo, zlonamerna koda se izvede takoj na strani odjemalca, ne da bi šla skozi strežnik, znana kot XSS na podlagi DOM ali znana tudi kot XSS tipa 0.
Najprej moramo vedeti, kaj je DOM?
DOM, okrajšava za Document Object Model, je standardna oblika W3C (http://www.w3.org/DOM/), predlagana za pridobivanje in obdelavo podatkov strukturiranih dokumentov, kot sta HTML in XML. Ta model predstavlja dokumente kot hierarhično drevesno strukturo. Vsi elementi v HTML in XML se štejejo za vozlišče.
XSS na osnovi DOM je tehnika izkoriščanja XSS, ki temelji na spreminjanju strukture DOM dokumenta, natančneje HTML.
Oglejmo si konkreten primer spodaj:
Spletno mesto ima naslednji URL do strani za registracijo:
example.com/register.php?message=Please fill in the form
Ko dostopamo do njega, vidimo zelo običajen obrazec:

Parameter sporočila, ki je bil posredovan v vsebino obvestila na obrazcu, lahko preprosto sklepate, natančno preglejte izvorno kodo tega obvestila:

Segment JavaScript je odgovoren za pridobivanje vrednosti iz parametra sporočila in njeno tiskanje. S tem ohlapnim preverjanjem vnosa je popolnoma mogoče pretentati uporabnike v dostop do nevarnih URL-jev.
Namesto oddajanja:
message=Please fill in the form
nato posreduj:
message=GenderMaleFemale
function show(){alert();}
Potem bo obrazec za registracijo videti takole:

Uporabniki ne bodo dvomili o "običajni" obliki, kot je ta, in pri izbiri spola se bo izvedel skript:

Pojasnil bom nekaj več o vrednosti, posredovani v parametru sporočila:
GenderMaleFemale
function show(){alert();}
Njen glavni namen je izvršiti funkcijo show() vsakič, ko pride do dogodka onchage na oznaki select. Funkcija show() se tukaj preprosto pojavi in pokaže, da je bil skript izveden. Vendar pa bodo hekerji v resnici pogosto uporabljali to funkcijo show() za izvajanje skripta, ki prenese vrednost uporabniškega piškotka vnaprej določenemu strežniku. Bralci si lahko ogledajo članek Reflected XSS , ki omenja, kako hekerji ustvarjajo. Kako izgleda ta zahteva?
Ta primer nam daje dva pomembna zaključka. Prvič, zlonamerna koda se je izvršila takoj po kliku na vrednost v oznaki za izbiro, kar pomeni, da je bila izvedena neposredno na strani odjemalca, ne da bi šla skozi odziv strežnika. Drugič, struktura HTML je bila spremenjena s posredovanim skriptom. Prav tako lahko vidimo dejanski scenarij izkoriščanja, DOM Based je nekoliko bolj podoben Reflected kot Stored XSS, ko gre za prevaro uporabnikov v dostop do URL-ja, v katerega je vdelana zlonamerna koda.
Naslednja slika opisuje vsak korak pri izvajanju tehnike napada XSS na osnovi DOM:

Spodaj je videoposnetek člana foruma WhiteHat.vn, ki izvaja izkoriščanje prek XSS, ki temelji na DOM:
Vso srečo!