hacktricks/pentesting-web/parameter-pollution.md

72 lines
8.8 KiB
Markdown
Raw Normal View History

# Ρύπανση Παραμέτρων
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2023-12-31 01:25:17 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
2024-02-10 22:40:18 +00:00
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2024-02-10 22:40:18 +00:00
# Επισκόπηση Ρύπανσης Παραμέτρων HTTP (HPP)
2020-07-30 08:34:18 +00:00
Η Ρύπανση Παραμέτρων HTTP (HPP) είναι μια τεχνική όπου οι επιτιθέμενοι διαχειρίζονται τις παραμέτρους HTTP για να αλλάξουν τη συμπεριφορά μιας ιστοσελίδας με μη επιθυμητούς τρόπους. Αυτή η διαχείριση γίνεται προσθέτοντας, τροποποιώντας ή διπλασιάζοντας τις παραμέτρους HTTP. Τα αποτελέσματα αυτών των διαχειρίσεων δεν είναι απευθείας ορατά στον χρήστη, αλλά μπορεί να αλλάξουν σημαντικά τη λειτουργικότητα της εφαρμογής στην πλευρά του διακομιστή, με παρατηρήσιμες επιπτώσεις στην πλευρά του πελάτη.
2020-07-30 08:34:18 +00:00
2024-02-10 22:40:18 +00:00
## Παράδειγμα Ρύπανσης Παραμέτρων HTTP (HPP)
2020-07-30 08:34:18 +00:00
Ένα URL συναλλαγών εφαρμογής τραπεζικών συναλλαγών:
2020-07-30 08:34:18 +00:00
2024-02-10 22:40:18 +00:00
- **Αρχικό URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
2020-07-30 08:34:18 +00:00
Με την εισαγωγή ενός επιπλέον παραμέτρου `from`:
2020-07-30 08:34:18 +00:00
- **Ρυπασμένο URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
2020-07-30 08:34:18 +00:00
Η συναλλαγή μπορεί να χρεωθεί εσφαλμένα στον λογαριασμό `accountC` αντί για τον `accountA`, επιδεικνύοντας τη δυνατότητα της HPP να χειριστεί συναλλαγές ή άλλες λειτουργίες όπως επαναφορές κωδικών, ρυθμίσεις 2FA ή αιτήσεις κλειδιών API.
2020-07-30 08:34:18 +00:00
### **Ανάλυση Παραμέτρων Που Εξαρτώνται από την Τεχνολογία**
2020-07-30 08:34:18 +00:00
- Ο τρόπος με τον οποίο εξετάζονται και δίνεται προτεραιότητα στις παράμετροι εξαρτάται από την υποκείμενη τεχνολογία του web, επηρεάζοντας τον τρόπο με τον οποίο μπορεί να εκμεταλλευτείται η HPP.
- Εργαλεία όπως το [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) βοηθούν στην αναγνώριση αυτών των τεχνολογιών και των τρόπων ανάλυσής τους.
2020-07-30 08:34:18 +00:00
2024-02-10 22:40:18 +00:00
## Εκμετάλλευση PHP και HPP
2020-07-30 08:34:18 +00:00
**Περίπτωση Εκμετάλλευσης OTP:**
- **Πλαίσιο:** Μια μηχανισμός σύνδεσης που απαιτεί Ένα Μοναδικό Κωδικό (OTP) εκμεταλλεύτηκε.
- **Μέθοδος:** Με την παρέμβαση στο αίτημα OTP χρησιμοποιώντας εργαλεία όπως το Burp Suite, οι επιτιθέμενοι διπλασίασαν την παράμετρο `email` στο αίτημα HTTP.
- **Αποτέλεσμα:** Ο OTP, που ήταν προορισμένος για το αρχικό email, αντίθετα στάλθηκε στη δεύτερη διεύθυνση email που καθορίστηκε στο ρυπασμένο αίτημα. Αυτή η αδυναμία επέτρεψε τη μη εξουσιοδοτημένη πρόσβαση με την παράκαμψη του προβλεπόμενου μέτρου ασφαλείας.
Αυτό το σενάριο υπογραμμίζει ένα κρίσιμο παράλειμμα στον πίσω χώρο της εφαρμογής, η οποία επεξεργαζόταν την πρώτη παράμετρο `email` για τη δημιουργία OTP αλλά χρησιμοποιούσε την τελευταία για την παράδοση.
**Περίπτωση Εκμετάλλευσης Κλειδιού API:**
- **Σενάριο:** Μια εφαρμογή επιτρέπει στους χρήστες να ενημερώνουν το κλειδί API τους μέσω μιας σελίδας ρυθμίσεων προφίλ.
- **Διανυσματική Επίθεση:** Ένας επιτιθέμενος ανακαλύπτει ότι προσθέτοντας μια επιπλέον παράμετρο `api_key` στο αίτημα POST, μπορεί να εκμεταλλευτεί το αποτέλεσμα της λειτουργίας ενημέρωσης κλειδιού API.
- **Τεχνική:** Χρησιμοποιώντας ένα εργαλείο όπως το Burp Suite, ο επιτιθέμενος δημιουργεί ένα αίτημα που περιλαμβάνει δύο παραμέτρους `api_key`: μία νόμιμη και μία κακόβουλη. Ο διακομιστής, επεξεργαζόμενος μόνο την τελευταία εμφάνιση, ενημερώνει το κλειδί API στην τιμή που παρέχει ο επιτιθέμενος.
- **Αποτέλεσμα:** Ο επιτιθέμενος αποκτά έλεγχο επί της λειτουργικότητας του κλειδιού API του θύματος, πιθανώς έχοντας πρόσβαση ή τροποποιώντας ιδιωτικά δεδομένα μη εξουσιοδοτημένα.
Αυτό το παράδειγμα υπογραμμίζει ακόμη περισσότερο την ανάγκη για ασφαλή χειρισμό παραμέτρων, ειδικά σε χαρακτηριστικά τόσο κρίσιμα όσο η διαχείριση κλειδιών API.
## Ανάλυση Παραμέτρων: Flask έναντι PHP
Ο τρόπος με τον οποίο οι τεχνολογίες web χειρίζονται διπλές παράμετρους HTTP διαφέρει, επηρεάζοντας την ευπάθειά τους στις επιθέσεις HPP:
2020-07-30 08:34:18 +00:00
- **Flask:** Προτιμά την τιμή της πρώτης παραμέτρου που συναντά, όπως `a=1` σε μια συμβολοσειρά ερωτήματος `a=1&a=2`, δίνοντας προτεραιότητα στην αρχική εμφάνιση έναντι των επόμενων διπλών.
- **PHP (σε Διακομιστή Apache HTTP):** Αντίθετα, δίνει προτεραιότητα στην τελευταία τιμή παραμέτρου, επιλέγοντας το `a=2` στο δεδομένο παράδειγμα. Αυτή η συμπεριφορά μπορεί ακούσια να διευκολύνει τις επιθέσεις HPP δίνοντας προτεραιότητα στη ρυπασμένη παράμετρο του επιτιθέμενου έναντι της αρχικής.
2020-07-30 08:34:18 +00:00
## Αναφορές
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com