hacktricks/pentesting-web/dependency-confusion.md

39 lines
5.4 KiB
Markdown
Raw Normal View History

2024-02-10 22:40:18 +00:00
# Εξάρτηση Σύγχυσης
2022-11-29 16:54:14 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](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)**.
2022-11-29 16:54:14 +00:00
</details>
2024-02-10 22:40:18 +00:00
## Βασικές Πληροφορίες
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
Συνολικά, μια ευπάθεια εξάρτησης σύγχυσης συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με ένα **λανθασμένο** όνομα, **ανύπαρκτο** ή με μια **μη καθορισμένη έκδοση** και ο αποθετήριο εξάρτησης που χρησιμοποιείται επιτρέπει να **συγκεντρωθούν ενημερωμένες εκδόσεις από δημόσια** αποθετήρια.
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
* **Λανθασμένο**: Εισαγωγή του **`reqests`** αντί για `requests`
* **Ανύπαρκτο**: Εισαγωγή της `company-logging`, μιας εσωτερικής βιβλιοθήκης που **δεν υπάρχει πλέον**
* **Μη καθορισμένη έκδοση**: Εισαγωγή μιας **εσωτερικής υπάρχουσας** βιβλιοθήκης `company-requests`, αλλά ο έλεγχος του αποθετηρίου **δημόσιων αποθετηρίων** γίνεται για να δει αν υπάρχουν **μεγαλύτερες εκδόσεις**.
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
## Εκμετάλλευση
2022-11-29 16:54:14 +00:00
{% hint style="warning" %}
2024-02-10 22:40:18 +00:00
Σε όλες τις περιπτώσεις, ο επιτιθέμενος απλά χρειάζεται να δημοσιεύσει ένα **κακόβουλο πακέτο με το όνομα** των βιβλιοθηκών που χρησιμοποιεί η εταιρεία θύμα.
2022-11-29 16:54:14 +00:00
{% endhint %}
2024-02-10 22:40:18 +00:00
### Λανθασμένο & Ανύπαρκτο
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
Εάν η εταιρεία σας προσπαθεί να **εισάγει μια βιβλιοθήκη που δεν είναι εσωτερική**, πιθανότατα το αποθετήριο των βιβλιοθηκών θα την αναζητήσει σε **δημόσια αποθετήρια**. Εάν ένας επιτιθέμενος την έχει δημιουργήσει, ο κώδικάς σας και οι μηχανές που τρέχουν είναι πιθανόν να διατρέχουν κίνδυνο.
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
### Μη καθορισμένη Έκδοση
2022-11-29 16:54:14 +00:00
2024-02-10 22:40:18 +00:00
Είναι πολύ συνηθισμένο για τους προγραμματιστές να **μην καθορίζουν καμία έκδοση** της χρησιμοποιούμενης βιβλιοθήκης ή να καθορίζουν μόνο μια **κύρια έκδοση**. Στη συνέχεια, ο διερμηνέας θα προσπαθήσει να κατεβάσει την **τελευταία έκδοση** που πληροί αυτές τις απαιτήσεις.\
Εάν η βιβλιοθήκη είναι μια **γνωστή εξωτερική βιβλιοθήκη** (όπως η python `requests`), ένας **επιτιθέμενος δεν μπορεί να κάνει πολλά**, καθώς δεν θα μπορεί να δημιουργήσει μια βιβλιοθήκη με το όνομα `requests` (εκτός αν είναι ο αρχικός συντάκτης).\
Ωστόσο, εάν η βιβλιοθήκη είναι **εσωτερική**, όπως η `requests-company` σε αυτό το παράδειγμα, εάν το **αποθετήριο της βιβλιοθήκης** επιτρέπει να **ελέγξει και εξωτερικά για νέες εκδόσεις**, θα αναζητήσει μια νεότερη έκδοση που είναι διαθέσιμη δημοσίως.\
Έτσι, εάν ένας **επιτιθέμενος γνωρίζει** ότι η εταιρεία χρησιμοποιεί τη βιβλιοθήκη `requests-company` **έκδοση 1.0.1** (επιτρέπονται μικρές ενημερώσεις), μπορεί να **δη