5.8 KiB
Dependency Confusion
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u kompaniji za kibernetičku bezbednost? Želite li da vidite svoju kompaniju reklamiranu na HackTricks? ili želite pristupiti najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu? Proverite PLANOVE ZA PRETPLATU!
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitteru 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repozitorijum i hacktricks-cloud repozitorijum.
{% embed url="https://websec.nl/" %}
Osnovne informacije
U suštini, ranjivost dependency confusion se javlja kada projekat koristi biblioteku sa pogrešno napisanim imenom, ne postoji ili sa nedefinisanim brojem verzije, a korišćeni repozitorijum dozvoljava da se prikupljaju ažurirane verzije iz javnih repozitorijuma.
- Pogrešno napisano: Uvoziti
reqests
umestorequests
- Ne postoji: Uvoziti
company-logging
, internu biblioteku koja više ne postoji - Nedefinisana verzija: Uvoziti internu postojeću biblioteku
company-requests
, ali repozitorijum proverava javne repozitorijume da vidi da li postoje veće verzije.
Eksploatacija
{% hint style="warning" %} U svim slučajevima, napadač samo treba da objavi zlonamerni paket sa imenom biblioteka koje koristi kompanija žrtva. {% endhint %}
Pogrešno napisano & Ne postoji
Ako vaša kompanija pokušava da uvozi biblioteku koja nije interna, veoma je verovatno da će repozitorijum biblioteka tražiti tu biblioteku u javim repozitorijumima. Ako je napadač kreirao tu biblioteku, vaš kod i mašine koje je pokreću su veoma verovatno kompromitovane.
Nedefinisana verzija
Veoma je često da developeri ne specificiraju nijednu verziju korištene biblioteke, ili specificiraju samo glavnu verziju. Tada, interpretator će pokušati da preuzme najnoviju verziju koja odgovara tim zahtevima.
Ako je biblioteka poznata spoljna biblioteka (kao što je python requests
), napadač ne može mnogo da uradi, jer neće moći da kreira biblioteku nazvanu requests
(osim ako je originalni autor).
Međutim, ako je biblioteka interna, kao što je requests-company
u ovom primeru, ako repozitorijum biblioteke dozvoljava da proveri nove verzije i spolja, tražiće noviju verziju dostupnu javno.
Dakle, ako napadač zna da kompanija koristi biblioteku requests-company
verziju 1.0.1 (dozvoljava manje ažuriranja). Može objaviti biblioteku requests-company
verziju 1.0.2 i kompanija će koristiti tu biblioteku umesto interne.
AWS Popravka
Ova ranjivost je pronađena u AWS CodeArtifact (pročitajte detalje u ovom blog postu).
AWS je ovo popravio omogućavajući da se specificira da li je biblioteka interna ili eksterna, kako bi se izbeglo preuzimanje internih zavisnosti iz eksternih repozitorijuma.
Pronalaženje Ranjivih Biblioteka
U originalnom postu o dependency confusion autor je pretraživao hiljade izloženih package.json fajlova koji sadrže zavisnosti projekata u JavaScript-u.
Reference
- https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
- https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d
{% embed url="https://websec.nl/" %}
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u kompaniji za kibernetičku bezbednost? Želite li da vidite svoju kompaniju reklamiranu na HackTricks? ili želite pristupiti najnovijoj verziji PEASS ili preuzeti HackTricks u PDF formatu? Proverite PLANOVE ZA PRETPLATU!
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitteru 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repozitorijum i hacktricks-cloud repozitorijum.