Dependency Confusion
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In samevatting, 'n afhanklikheid verwarring kwesbaarheid gebeur wanneer 'n projek 'n biblioteek met 'n verkeerde gespelde naam, nie-bestaande of met 'n onbepaalde weergawe gebruik en die gebruikte afhanklikheid repo toelaat om opdaterings van openbare repos te versamel.
Verkeerde gespelde: Importeer reqests
in plaas van requests
Nie-bestaande: Importeer company-logging
, 'n interne biblioteek wat nie meer bestaan nie
Onbepaalde weergawe: Importeer 'n interne bestaande company-requests
biblioteek, maar die repo kyk na openbare repos om te sien of daar groter weergawes is.
In alle gevalle hoef die aanvaller net 'n kwaadwillige pakket met die naam van biblioteke wat deur die slagoffer maatskappy gebruik word, te publiseer.
As jou maatskappy probeer om 'n biblioteek te importeer wat nie intern is nie, is dit hoogs waarskynlik dat die repo van biblioteke dit in openbare repos gaan soek. As 'n aanvaller dit geskep het, is dit hoogs waarskynlik dat jou kode en masjiene wat loop, gecompromitteer gaan word.
Dit is baie algemeen dat ontwikkelaars geen weergawe van die biblioteek wat gebruik word, spesifiseer nie, of net 'n hoof weergawe spesifiseer. Dan sal die interpreter probeer om die nuutste weergawe wat aan daardie vereistes voldoen, af te laai.
As die biblioteek 'n bekende eksterne biblioteek is (soos python requests
), kan 'n aanvaller nie veel doen nie, aangesien hy nie 'n biblioteek met die naam requests
kan skep nie (tenzij hy die oorspronklike outeur is).
As die biblioteek egter intern is, soos requests-company
in hierdie voorbeeld, as die biblioteek repo toelaat om ook na nuwe weergawes ekstern te kyk, sal dit soek na 'n nuwer weergawe wat publiek beskikbaar is.
So as 'n aanvaller weet dat die maatskappy die requests-company
biblioteek weergawe 1.0.1 gebruik (laat klein opdaterings toe). Hy kan die biblioteek requests-company
weergawe 1.0.2 publiseer en die maatskappy sal daardie biblioteek in plaas van die interne een gebruik.
Hierdie kwesbaarheid is in AWS CodeArtifact gevind (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 repos afgelaai word.
In die oorspronklike pos oor afhanklikheid verwarring het die outeur gesoek na duisende blootgestelde package.json lêers wat javascript projek se afhanklikhede bevat.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)