8.9 KiB
Ρύπανση Παραμέτρων
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
{% embed url="https://websec.nl/" %}
Επισκόπηση Ρύπανσης Παραμέτρων HTTP (HPP)
Η Ρύπανση Παραμέτρων HTTP (HPP) είναι μια τεχνική όπου οι επιτιθέμενοι διαμορφώνουν τις παραμέτρους HTTP για να αλλάξουν τη συμπεριφορά μιας εφαρμογής web με μη επιθυμητους τρόπους. Αυτή η διαμόρφωση γίνεται προσθέτοντας, τροποποιώντας ή διπλασιάζοντας τις παραμέτρους HTTP. Τα αποτελέσματα αυτών των διαμορφώσεων δεν είναι απευθείας ορατά στον χρήστη αλλά μπορεί να αλλάξουν σημαντικά τη λειτουργικότητα της εφαρμογής στην πλευρά του διακομιστή, με παρατηρήσιμες επιπτώσεις στην πλευρά του πελάτη.
Παράδειγμα Ρύπανσης Παραμέτρων HTTP (HPP)
Ένα URL συναλλαγών μιας τράπεζας:
- Αρχικό URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000
Με την προσθήκη μιας επιπλέον παραμέτρου from
:
- Διαμορφωμένο URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
Η συναλλαγή μπορεί να χρεωθεί εσφαλμένα στον λογαριασμό accountC
αντί για τον accountA
, επιδεικνύοντας τη δυνατότητα της HPP να διαμορφώνει συναλλαγές ή άλλες λειτουργίες όπως επαναφορές κωδικών, ρυθμίσεις 2FA ή αιτήσεις κλειδιών API.
Ανάλυση Παραμέτρων Ειδικής Τεχνολογίας
- Ο τρόπος με τον οποίο αναλύονται και δίνεται προτεραιότητα στις παράμετροι εξαρτάται από την υποκείμενη τεχνολογία web, επηρεάζοντας τον τρόπο με τον οποίο μπορεί να εκμεταλλευτεί η HPP.
- Εργαλεία όπως το Wappalyzer βοηθούν στην αναγνώριση αυτών των τεχνολογιών και των τρόπων ανάλυσής τους.
Εκμετάλλευση PHP και HPP
Περίπτωση Εκμετάλλευσης OTP:
- Πλαίσιο: Ένα μηχανισμός σύνδεσης που απαιτεί Ένα Μοναδικό Κωδικό Πρόσβασης (OTP) εκμεταλλεύτηκε.
- Μέθοδος: Με την παρέμβαση στο αίτημα OTP χρησιμοποιώντας εργαλεία όπως το Burp Suite, οι επιτιθέμενοι διπλασίασαν την παράμετρο
email
στο αίτημα HTTP. - Αποτέλεσμα: Ο OTP, που ήταν προορισμένος για το αρχικό email, αντίθετα στάλθηκε στη δεύτερη διεύθυνση email που καθορίστηκε στο διαμορφωμένο αίτημα. Αυτή η αδυναμία επέτρεψε τη μη εξουσιοδοτημένη πρόσβαση με την παράκαμψη του προβλεπόμενου μέτρου ασφαλείας.
Αυτό το σενάριο υπογραμμίζει ένα κρίσιμο παράλειμμα στο backend της εφαρμογής, το οποίο επεξεργαζόταν την πρώτη παράμετρο email
για τη δημιουργία OTP αλλά χρησιμοποίησε την τελευταία για την παράδοση.
Περίπτωση Εκμετάλλευσης Κλειδιού API:
- Σενάριο: Μια εφαρμογή επιτρέπει στους χρήστες να ενημερώνουν το κλειδί API τους μέσω μιας σελίδας ρυθμίσεων προφίλ.
- Διανυσματικός Επίθεσης: Ένας επιτιθέμενος ανακαλύπτει ότι προσθέτοντας μια επιπλέον παράμετρο
api_key
στο αίτημα POST, μπορεί να διαμορφώσει το αποτέλεσμα της λειτουργίας ενημέρωσης κλειδιού API. - Τεχνική: Χρησιμοποιώντας ένα εργαλείο όπως το Burp Suite, ο επιτιθέμενος δημιουργεί ένα αίτημα που περιλαμβάνει δύο παραμέτρους
api_key
: μία νόμιμη και μία κακόβουλη. Ο διακομιστής, επεξεργαζόμενος μόνο την τελευταία εμφάνιση, ενημερώνει το κλειδί API στην τιμή που παρέχεται από τον επιτιθέμενο. - Αποτέλεσμα: Ο επιτιθέμενος αποκτά έλεγχο στη λειτουργικότητα του κλειδιού API του θύματος, πιθανώς έχοντας πρόσβαση ή τροποποιώντας ιδιωτικά δεδομένα μη εξουσιοδοτημένα.
Αυτό το παράδειγμα υπογραμμίζει ακόμη περισσότερο την ανάγκη για ασφαλή χειρισμό παραμέτρων, ειδικά σε χαρακτηριστικά τόσο κρίσιμα όσο η διαχείριση κλειδιών API.
Ανάλυση Παραμέτρων: Flask έναντι PHP
Ο τρόπος με τον οποίο οι τεχνολογίες web χειρίζονται διπλές παράμετρους HTTP διαφέρει, επηρεάζοντας την ευπάθειά τους στις επιθέσεις HPP:
- Flask: Προτιμά την τιμή της πρώτης παραμέτρου που συναντά, όπως
a=1
σε μια συμβολοσειρά ερωτήματοςa=1&a=2
, δίνοντας προτεραιότητα στην αρχική εμφάνιση έναντι των επόμενων διπλών. - PHP (σε Διακομιστή Apache HTTP): Αντίθετα, δίνει προτεραιότητα στην τελευταία τιμή παραμέτρου, επιλέγοντας το
a=2
στο δεδομένο παράδειγμα. Αυτή η συμπεριφορά μπορεί απροσδόκητα να διευκολύνει τις επιθέσεις HPP δίνοντας προτεραιότητα στη διαμορφωμένη παράμετρο του επιτιθέμενου αντί της αρχικής.