hacktricks/pentesting-web/dependency-confusion.md

74 lines
9 KiB
Markdown
Raw Normal View History

2024-02-10 22:40:18 +00:00
# Εξάρτηση Σύγχυσης
2022-11-29 16:54:14 +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-11-29 16:54:14 +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)
2024-02-10 22:40:18 +00:00
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στη [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
2024-02-10 22:40:18 +00:00
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-11-29 16:54:14 +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
## Βασικές Πληροφορίες
2022-11-29 16:54:14 +00:00
Συνοπτικά, μια ευπάθεια εξάρτησης σύγχυσης συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με **λάθος γραμματικό λάθος**, **μη υπάρχουσα** ή με **μη καθορισμένη έκδοση** και το χρησιμοποιούμενο αποθετήριο εξαρτήσεων επιτρέπει να **συγκεντρώνει ενημερωμένες εκδόσεις από δημόσια** αποθετήρια.
2022-11-29 16:54:14 +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" %}
Σε όλες τις περιπτώσεις ο επιτιθέμενος απλώς χρειάζεται να δημοσιεύσει ένα **κακόβουλο πακέτο με το όνομα** των βιβλιοθηκών που χρησιμοποιεί η εταιρεία θύμα.
2022-11-29 16:54:14 +00:00
{% endhint %}
### Λάθος γραμματικό λάθος & Μη υπάρχουσα
2022-11-29 16:54:14 +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
Είναι πολύ συνηθισμένο για τους προγραμματιστές να **μην καθορίζουν καμία έκδοση** της χρησιμοποιούμενης βιβλιοθήκης, ή να καθορίζουν μόνο μια **κύρια έκδοση**. Στη συνέχεια, ο διερμηνευτής θα προσπαθήσει να κατεβάσει την **τελευταία έκδοση** που πληροί αυτές τις απαιτήσεις.\
Αν η βιβλιοθήκη είναι μια **γνωστή εξωτερική βιβλιοθήκη** (όπως το python `requests`), ένας **επιτιθέμενος δεν μπορεί να κάνει πολλά**, καθώς δεν θα μπορεί να δημιουργήσει μια βιβλιοθήκη με το όνομα `requests` (εκτός αν είναι ο αρχικός συγγραφέας).\
Ωστόσο, αν η βιβλιοθήκη είναι **εσωτερική**, όπως το `requests-company` σε αυτό το παράδειγμα, αν το **αποθετήριο της βιβλιοθήκης** επιτρέπει να **ελέγχει και για νέες εκδόσεις εξωτερικά**, θα αναζητήσει μια νεότερη έκδοση διαθέσιμη δημόσια.\
Έτσι, αν ένας **επιτιθέμενος γνωρίζει** ότι η εταιρεία χρησιμοποιεί τη βιβλιοθήκη `requests-company` **έκδοση 1.0.1** (επιτρέπει μικρές ενημερώσεις). Μπορεί να **δημοσιεύσει** τη βιβλιοθήκη `requests-company` **έκδοση 1.0.2** και η εταιρεία θα **χρησιμοποιήσει αυτήν τη βιβλιοθήκη αντί** της εσωτερικής.
## Διόρθωση AWS
Αυτή η ευπάθεια εντοπίστηκε στο AWS **CodeArtifact** (διαβάστε τις [**λεπτομέρειες σε αυτήν την ανάρτηση στο blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
Το AWS το διόρθωσε επιτρέποντας να καθορίζετε αν μια βιβλιοθήκη είναι εσωτερική ή εξωτερική, για να αποφεύγετε τη λήψη εσωτερικών εξαρτήσεων από εξωτερικά αποθετήρια.
## Εύρεση Ευπάθειών Βιβλιοθηκών
Στην [**αρχική ανάρτηση για την εξάρτηση σύγχυσης**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) ο συγγραφέας αναζήτησε χιλιάδες αποκαλυμμένα αρχεία package.json που περιέχουν τις εξαρτήσεις των έργων σε JavaScript.
## Αναφορές
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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) ή στη [**ομάδα τηλεγράφου**](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)**.
</details>