# 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**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
## 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`** umesto `requests`
* **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**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
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**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) 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://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)
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**](https://github.com/sponsors/carlospolop)!
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.