hacktricks/pentesting-web/dependency-confusion.md

80 lines
5.7 KiB
Markdown
Raw Normal View History

# Afhanklikheid Verwarring
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-11-29 16:54:14 +00:00
<details>
<summary>Ondersteun HackTricks</summary>
2022-11-29 16:54:14 +00:00
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-11-29 16:54:14 +00:00
</details>
{% endhint %}
2022-11-29 16:54:14 +00:00
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2024-02-11 02:07:06 +00:00
## Basiese Inligting
2022-11-29 16:54:14 +00:00
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**.
2022-11-29 16:54:14 +00:00
* **Verkeerde gespelde**: Importeer **`reqests`** in plaas van `requests`
2024-02-11 02:07:06 +00:00
* **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.
2022-11-29 16:54:14 +00:00
## Exploitatie
2022-11-29 16:54:14 +00:00
{% hint style="warning" %}
In alle gevalle hoef die aanvaller net 'n **kwaadwillige pakket met die naam** van biblioteke wat deur die slagoffer maatskappy gebruik word, te publiseer.
2022-11-29 16:54:14 +00:00
{% endhint %}
### Verkeerde Gespel & Nie-Bestaande
2022-11-29 16:54:14 +00:00
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.
2022-11-29 16:54:14 +00:00
### Onbepaalde Weergawe
2022-11-29 16:54:14 +00:00
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**.
2022-11-29 16:54:14 +00:00
## AWS Regstelling
2022-11-29 16:54:14 +00:00
Hierdie kwesbaarheid is in AWS **CodeArtifact** gevind (lees die [**besonderhede in hierdie blogpos**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
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.
2022-11-29 16:54:14 +00:00
## Vind Kwesbare Biblioteke
2022-11-29 16:54:14 +00:00
In die [**oorspronklike pos oor afhanklikheid verwarring**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) het die outeur gesoek na duisende blootgestelde package.json lêers wat javascript projek se afhanklikhede bevat.
2022-11-29 16:54:14 +00:00
2024-02-11 02:07:06 +00:00
## Verwysings
2022-11-29 16:54:14 +00:00
* [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/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-11-29 16:54:14 +00:00
<details>
<summary>Ondersteun HackTricks</summary>
2022-11-29 16:54:14 +00:00
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-11-29 16:54:14 +00:00
</details>
{% endhint %}