hacktricks/pentesting-web/dependency-confusion.md

8.9 KiB
Raw Blame History

Dependency Confusion

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

{% embed url="https://websec.nl/" %}

Βασικές Πληροφορίες

Συνοπτικά, μια ευπάθεια στην εξάρτηση συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με λάθος γραμματικό λάθος, μη ύπαρξη ή με μη καθορισμένη έκδοση και το αποθετήριο εξαρτήσεων που χρησιμοποιείται επιτρέπει τη συγκέντρωση ενημερωμένων εκδόσεων από δημόσια αποθετήρια.

  • Λάθος γραμματικό λάθος: Εισαγωγή reqests αντί για requests
  • Μη ύπαρξη: Εισαγωγή company-logging, μια εσωτερική βιβλιοθήκη που δεν υπάρχει πλέον
  • Μη καθορισμένη έκδοση: Εισαγωγή μιας εσωτερικής υπάρχουσας βιβλιοθήκης company-requests, αλλά το αποθετήριο ελέγχει δημόσια αποθετήρια για να δει αν υπάρχουν μεγαλύτερες εκδόσεις.

Εκμετάλλευση

{% hint style="warning" %} Σε όλες τις περιπτώσεις ο επιτιθέμενος απλώς χρειάζεται να δημοσιεύσει ένα κακόβουλο πακέτο με το όνομα των βιβλιοθηκών που χρησιμοποιεί η εταιρεία θύμα. {% endhint %}

Λάθος γραμματικό λάθος & Μη ύπαρξη

Αν η εταιρεία σας προσπαθεί να εισάγει μια βιβλιοθήκη που δεν είναι εσωτερική, είναι πολύ πιθανό το αποθετήριο των βιβλιοθηκών να την αναζητά σε δημόσια αποθετήρια. Αν ένας επιτιθέμενος την έχει δημιουργήσει, τον κώδικά σας και τις μηχανές που τρέχουν είναι πολύ πιθανό να διακινδυνευτούν.

Μη καθορισμένη Έκδοση

Είναι πολύ συνηθισμένο για τους προγραμματιστές να μην καθορίζουν καμία έκδοση της χρησιμοποιούμενης βιβλιοθήκης, ή να καθορίζουν μόνο μια κύρια έκδοση. Στη συνέχεια, ο μεταφραστής θα προσπαθήσει να κατεβάσει τη τελευταία έκδοση που πληροί αυτές τις απαιτήσεις.
Αν η βιβλιοθήκη είναι μια γνωστή εξωτερική βιβλιοθήκη (όπως το python requests), ένας επιτιθέμενος δεν μπορεί να κάνει πολλά, καθώς δεν θα μπορεί να δημιουργήσει μια βιβλιοθήκη με το όνομα requests (εκτός αν είναι ο αρχικός συγγραφέας).
Ωστόσο, αν η βιβλιοθήκη είναι εσωτερική, όπως το requests-company σε αυτό το παράδειγμα, αν το αποθετήριο της βιβλιοθήκης επιτρέπει να ελέγχει για νέες εκδόσεις και εξωτερικά, θα αναζητήσει μια νεότερη έκδοση διαθέσιμη δημόσια.
Έτσι, αν ένας επιτιθέμενος γνωρίζει ότι η εταιρεία χρησιμοποιεί τη βιβλιοθήκη requests-company έκδοση 1.0.1 (επιτρέπει μικρές ενημερώσεις). Μπορεί να δημοσιεύσει τη βιβλιοθήκη requests-company έκδοση 1.0.2 και η εταιρεία θα χρησιμοποιήσει αυτήν τη βιβλιοθήκη αντί της εσωτερικής.

Διόρθωση AWS

Αυτή η ευπάθεια βρέθηκε στο AWS CodeArtifact (διαβάστε τις λεπτομέρειες σε αυτήν την ανάρτηση στο blog).
Το AWS διόρθωσε αυτό επιτρέποντας να καθορίζετε αν μια βιβλιοθήκη είναι εσωτερική ή εξωτερική, για να αποφεύγετε τη λήψη εσωτερικών εξαρτήσεων από εξωτερικά αποθετήρια.

Εύρεση Ευπάθειών Βιβλιοθηκών

Στην αρχική ανάρτηση για την ευπάθεια στην εξάρτηση ο συγγραφέας αναζήτησε χιλιάδες αρχεία package.json που περιέχουν τις εξαρτήσεις έργων JavaScript.

Αναφορές

{% embed url="https://websec.nl/" %}

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!