7.8 KiB
Unicode Injection
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Εισαγωγή
Ανάλογα με το πώς το πίσω μέρος/μπροστινό μέρος συμπεριφέρεται όταν λαμβάνει παράξενους χαρακτήρες unicode, ένας επιτιθέμενος μπορεί να είναι σε θέση να παρακάμψει τις προστασίες και να εισάγει αυθαίρετους χαρακτήρες που μπορούν να χρησιμοποιηθούν για κακόβουλες εισαγωγές όπως XSS ή SQLi.
Κανονικοποίηση Unicode
Η κανονικοποίηση Unicode συμβαίνει όταν οι χαρακτήρες unicode κανονικοποιούνται σε χαρακτήρες ASCII.
Ένα συνηθισμένο σενάριο αυτού του είδους της ευπάθειας συμβαίνει όταν το σύστημα τροποποιεί κάπως την είσοδο του χρήστη μετά τον έλεγχο της. Για παράδειγμα, σε ορισμένες γλώσσες, ένα απλό κάλεσμα για να κάνει την είσοδο κεφαλαία ή πεζά μπορεί να κανονικοποιήσει την δοθείσα είσοδο και τα unicode θα μετατραπούν σε ASCII δημιουργώντας νέους χαρακτήρες.
Για περισσότερες πληροφορίες ανατρέξτε στο:
{% content-ref url="unicode-normalization.md" %} unicode-normalization.md {% endcontent-ref %}
Από \u
σε %
Οι χαρακτήρες Unicode συνήθως αναπαρίστανται με το πρόθεμα \u
. Για παράδειγμα, ο χαρακτήρας 㱋
είναι \u3c4b
(ελέγξτε το εδώ). Εάν ένα πίσω μέρος μετατρέπει το πρόθεμα \u
σε %
, η τελική συμβολοσειρά θα είναι %3c4b
, η οποία αποκωδικοποιείται URL ως: <4b
. Και, όπως μπορείτε να δείτε, ένας χαρακτήρας <
εισάγεται.
Μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική για να εισάγετε οποιονδήποτε χαρακτήρα εάν το πίσω μέρος είναι ευάλωτο.
Ελέγξτε το https://unicode-explorer.com/ για να βρείτε τους χαρακτήρες που χρειάζεστε.
Αυτή η ευπάθεια προέρχεται πραγματικά από μια ευπάθεια που ανακάλυψε ένας ερευνητής, για μια πιο λεπτομερή εξήγηση ανατρέξτε στο https://www.youtube.com/watch?v=aUsAHb0E7Cg
Εισαγωγή Emoji
Τα πίσω μέρη κάποιες φορές συμπεριφέρονται περίεργα όταν λαμβάνουν emojis. Αυτό συνέβη σε αυτό το writeup όπου ο ερευνητής κατάφερε να προκαλέσει ένα XSS με ένα payload όπως: 💋img src=x onerror=alert(document.domain)//💛
Σε αυτήν την περίπτωση, το σφάλμα ήταν ότι ο διακομιστής μετά την αφαίρεση των κακόβουλων χαρακτήρων μετέτρεψε το UTF-8 string από Windows-1252 σε UTF-8 (βασικά η κωδικοποίηση εισόδου και η μετατροπή από κωδικοποίηση δεν ταιριάζουν). Στη συνέχεια, αυτό δεν δίνει ένα σωστό < αλλά ένα περίεργο unicode: ‹
``Έτσι πήραν αυτήν την έξοδο και μετέτρεψαν ξανά τώρα από UTF-8 σε ASCII. Αυτό κανονικοποίησε το ‹
σε <
αυτό είναι πώς μπορούσε να λειτουργήσει η εκμετάλλευση σε αυτό το σύστημα.
Αυτό είναι τι συνέβη:
<?php
$str = isset($_GET["str"]) ? htmlspecialchars($_GET["str"]) : "";
$str = iconv("Windows-1252", "UTF-8", $str);
$str = iconv("UTF-8", "ASCII//TRANSLIT", $str);
echo "String: " . $str;
Λίστες emoji:
- https://github.com/iorch/jakaton_feminicidios/blob/master/data/emojis.csv
- https://unicode.org/emoji/charts-14.0/full-emoji-list.html
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.