hacktricks/pentesting-web/dependency-confusion.md

73 lines
5.7 KiB
Markdown

# Kutatanisha Utegemezi
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) na [repo ya hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Taarifa Msingi
Kwa muhtasari, udhaifu wa kutatanisha utegemezi hutokea wakati mradi unatumia maktaba yenye jina lililoandikwa **kwa makosa**, **haipo** au na **toleo lisiloelezwa** na hifadhi ya utegemezi inayotumiwa inaruhusu **kukusanya toleo jipya kutoka kwenye hifadhi za umma**.
* **Kwa Makosa**: Ingiza **`reqests`** badala ya `requests`
* **Haipo**: Ingiza `company-logging`, maktaba ya ndani ambayo **haipo tena**
* **Toleo Lisiloelezwa**: Ingiza maktaba ya **ndani** **iliyopo** `company-requests`, lakini hifadhi inachunguza **hifadhi za umma** kuona kama kuna **toleo kubwa**.
## Udukuzi
{% hint style="warning" %}
Katika kila kesi, muhusika anahitaji tu kuchapisha **pakiti yenye nia mbaya yenye jina** la maktaba zilizotumiwa na kampuni ya mwathiriwa.
{% endhint %}
### Kwa Makosa & Haipo
Ikiwa kampuni yako inajaribu **kuagiza maktaba ambayo si ya ndani**, kuna uwezekano mkubwa hifadhi ya maktaba itakuwa inatafuta kwenye **hifadhi za umma**. Ikiwa muhusika ameitengeneza, programu yako na mashine zinazoendesha zinaweza kuwa zimeingiliwa kwa kiwango kikubwa.
### Toleo Lisiloelezwa
Ni kawaida kwa wabunifu **kutotaja toleo lolote** la maktaba iliyotumiwa, au kutaja tu **toleo kuu**. Kisha, mkalimani atajaribu kupakua **toleo jipya zaidi** linalofaa mahitaji hayo.\
Ikiwa maktaba ni **maktaba ya nje inayojulikana** (kama vile python `requests`), **muhalifu hawezi kufanya mengi**, kwani hataweza kuunda maktaba iliyoitwa `requests` (isipokuwa yeye ni mwandishi halisi).\
Hata hivyo, ikiwa maktaba ni **ndani**, kama `requests-company` katika mfano huu, ikiwa **hifadhi ya maktaba** inaruhusu **kuangalia toleo jipya pia kwa nje**, itatafuta toleo jipya lililopo hadharani.\
Kwa hivyo ikiwa **muhalifu anajua** kuwa kampuni inatumia maktaba ya `requests-company` **toleo 1.0.1** (kuruhusu visasisho vidogo). Anaweza **kuchapisha** maktaba ya `requests-company` **toleo 1.0.2** na kampuni itaanza **kutumia maktaba hiyo badala** ya ile ya ndani.
## AWS Kurekebisha
Udhaifu huu uligunduliwa katika AWS **CodeArtifact** (soma [**maelezo katika chapisho hili la blogi**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS ilirekebisha hili kwa kuruhusu kutaja ikiwa maktaba ni ya ndani au ya nje, ili kuepuka kupakua tegemezi za ndani kutoka kwenye hifadhi za nje.
## Kutambua Maktaba Zenye Udhaifu
Katika [**chapisho la awali kuhusu kutatanisha utegemezi**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) mwandishi alitafuta maelfu ya faili za package.json zilizo wazi zilizo na tegemezi za miradi ya javascript.
## Marejeo
* [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="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa [repo ya hacktricks](https://github.com/carlospolop/hacktricks) and [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>