hacktricks/pentesting-web/dependency-confusion.md
2024-02-11 02:07:06 +00:00

5.6 KiB

Afhanklikheidsverwarring

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Basiese Inligting

Kortliks, 'n afhanklikheidsverwarringskwesbaarheid kom voor wanneer 'n projek 'n biblioteek met 'n verkeerd gespelde naam, nie-bestaande of met 'n ongespesifiseerde weergawe gebruik en die gebruikte afhanklikheidsbewaarplek toelaat om bygewerkte weergawes van openbare bewaarplekke te verkry.

  • Verkeerd gespel: Importeer reqests in plaas van requests
  • Nie-bestaande: Importeer company-logging, 'n interne biblioteek wat nie meer bestaan nie
  • Ongespesifiseerde weergawe: Importeer 'n interne bestaande company-requests-biblioteek, maar die bewaarplek kyk na openbare bewaarplekke om te sien of daar groter weergawes is.

Uitbuiting

{% hint style="warning" %} In alle gevalle hoef die aanvaller net 'n skadelike pakkie met die naam van biblioteke wat deur die slagoffermaatskappy gebruik word, te publiseer. {% endhint %}

Verkeerd gespel & Nie-bestaande

As jou maatskappy probeer om 'n biblioteek te importeer wat nie intern is nie, is dit baie waarskynlik dat die bewaarplek van biblioteke dit in openbare bewaarplekke sal soek. As 'n aanvaller dit geskep het, is dit baie waarskynlik dat jou kode en masjiene wat loop, gekompromitteer sal word.

Ongespesifiseerde Weergawe

Dit is baie algemeen vir ontwikkelaars om geen weergawe van die gebruikte biblioteek te spesifiseer, of slegs 'n hoofweergawe te spesifiseer. Dan sal die tolk probeer om die nuutste weergawe wat aan daardie vereistes voldoen, af te laai.
As die biblioteek 'n bekende eksterne biblioteek is (soos Python se requests), kan 'n aanvaller nie veel doen nie, omdat hy nie 'n biblioteek met die naam requests kan skep nie (tensy hy die oorspronklike outeur is).
Maar as die biblioteek intern is, soos requests-company in hierdie voorbeeld, as die biblioteekbewaarplek toelaat om ook ekstern na nuwe weergawes te soek, sal dit soek na 'n nuwer weergawe wat openbaar beskikbaar is.
Dus, as 'n aanvaller weet dat die maatskappy die requests-company-biblioteek weergawe 1.0.1 gebruik (met klein opdaterings toegelaat), kan hy die biblioteek requests-company weergawe 1.0.2 publiseer en die maatskappy sal daardie biblioteek gebruik in plaas van die interne een.

AWS-oplossing

Hierdie kwesbaarheid is gevind in AWS CodeArtifact (lees die besonderhede in hierdie blogpos).
AWS het dit reggestel deur toe te laat om te spesifiseer of 'n biblioteek intern of ekstern is, om te verhoed dat interne afhanklikhede van eksterne bewaarplekke afgelaai word.

Identifisering van Kwesbare Biblioteke

In die oorspronklike pos oor afhanklikheidsverwarring het die skrywer gesoek na duisende blootgestelde package.json-lêers wat die afhanklikhede van JavaScript-projekte bevat.

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!