5.5 KiB
Dependency Confusion
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u cybersecurity kompaniji? Želite li da vidite svoju kompaniju reklamiranu na HackTricks-u? Ili želite da imate pristup najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu? Proverite SUBSCRIPTION PLANS!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitter-u 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.
Osnovne informacije
Ukratko, ranjivost dependency confusion se javlja kada projekat koristi biblioteku sa pogrešno napisanim imenom, ne-postojećom ili sa nedefinisanom verzijom, a korišćeni repozitorijum dozvoljava preuzimanje ažuriranih verzija iz javnih repozitorijuma.
- Pogrešno napisano: Uvozite
reqests
umestorequests
- Ne-postojeće: Uvozite
company-logging
, internu biblioteku koja više ne postoji - Nedefinisana verzija: Uvozite internu postojeću biblioteku
company-requests
, ali repozitorijum proverava javne repozitorijume da vidi da li postoje novije verzije.
Eksploatacija
{% hint style="warning" %} U svim slučajevima, napadaču je dovoljno da objavi zlonamerni paket sa imenom biblioteka koje koristi kompanija žrtva. {% endhint %}
Pogrešno napisano & Ne-postojeće
Ako vaša kompanija pokušava da uvozi biblioteku koja nije interna, veoma je verovatno da će repozitorijum biblioteka tražiti tu biblioteku u javnom repozitorijumu. Ako je napadač kreirao tu biblioteku, vaš kod i mašine koje je pokreću će verovatno biti kompromitovane.
Nedefinisana verzija
Veoma je često da programeri ne definišu verziju biblioteke koju koriste, ili definišu samo glavnu verziju. Tada će interpreter pokušati da preuzme poslednju 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 sa nazivom requests
(osim ako je originalni autor).
Međutim, ako je biblioteka interna, kao što je requests-company
u ovom primeru, ako repozitorijum biblioteke dozvoljava proveru novih verzija i spolja, tražiće noviju verziju koja je javno dostupna.
Dakle, ako napadač zna da kompanija koristi biblioteku requests-company
verzije 1.0.1 (dozvoljava manje ažuriranja), može objaviti biblioteku requests-company
verzije 1.0.2 i kompanija će koristiti tu biblioteku umesto interne.
AWS Popravka
Ova ranjivost je pronađena u AWS CodeArtifact-u (pročitajte detalje u ovom blog postu).
AWS je ovo popravio tako što je omogućio da se specificira da li je biblioteka interna ili spoljna, kako bi se izbeglo preuzimanje internih zavisnosti iz spoljnih repozitorijuma.
Pronalaženje Ranjivih Biblioteka
U originalnom postu o dependency confusion-u 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
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
- Da li radite u cybersecurity kompaniji? Želite li da vidite svoju kompaniju reklamiranu na HackTricks-u? Ili želite da imate pristup najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu? Proverite SUBSCRIPTION PLANS!
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Nabavite zvanični PEASS & HackTricks swag
- Pridružite se 💬 Discord grupi ili telegram grupi ili me pratite na Twitter-u 🐦@carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na hacktricks repo i hacktricks-cloud repo.