# Confusi贸n de Dependencias {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Apoya a HackTricks * Revisa los [**planes de suscripci贸n**](https://github.com/sponsors/carlospolop)! * **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆guenos** en **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
{% endhint %}
{% embed url="https://websec.nl/" %} ## Informaci贸n B谩sica En resumen, una vulnerabilidad de confusi贸n de dependencias ocurre cuando un proyecto est谩 utilizando una biblioteca con un nombre **mal escrito**, **inexistente** o con una **versi贸n no especificada** y el repositorio de dependencias utilizado permite **reunir versiones actualizadas de repositorios p煤blicos**. * **Mal escrito**: Importar **`reqests`** en lugar de `requests` * **Inexistente**: Importar `company-logging`, una biblioteca interna que **ya no existe** * **Versi贸n no especificada**: Importar una biblioteca `company-requests` **interna** **existente**, pero el repositorio verifica **repos p煤blicos** para ver si hay **versiones mayores**. ## Explotaci贸n {% hint style="warning" %} En todos los casos, el atacante solo necesita publicar un **paquete malicioso con el nombre** de las bibliotecas utilizadas por la empresa v铆ctima. {% endhint %} ### Mal Escrito e Inexistente Si tu empresa est谩 tratando de **importar una biblioteca que no es interna**, es muy probable que el repositorio de bibliotecas est茅 buscando en **repositorios p煤blicos**. Si un atacante la ha creado, tu c贸digo y las m谩quinas en funcionamiento probablemente estar谩n comprometidas. ### Versi贸n No Especificada Es muy com煤n que los desarrolladores **no especifiquen ninguna versi贸n** de la biblioteca utilizada, o que solo especifiquen una **versi贸n mayor**. Entonces, el int茅rprete intentar谩 descargar la **煤ltima versi贸n** que cumpla con esos requisitos.\ Si la biblioteca es una **biblioteca externa conocida** (como `requests` de python), un **atacante no puede hacer mucho**, ya que no podr谩 crear una biblioteca llamada `requests` (a menos que sea el autor original).\ Sin embargo, si la biblioteca es **interna**, como `requests-company` en este ejemplo, si el **repositorio de la biblioteca** permite **verificar nuevas versiones tambi茅n externamente**, buscar谩 una versi贸n m谩s nueva disponible p煤blicamente.\ As铆 que si un **atacante sabe** que la empresa est谩 utilizando la biblioteca `requests-company` **versi贸n 1.0.1** (permitiendo actualizaciones menores). Puede **publicar** la biblioteca `requests-company` **versi贸n 1.0.2** y la empresa **utilizar谩 esa biblioteca en lugar** de la interna. ## Soluci贸n en AWS Esta vulnerabilidad fue encontrada en AWS **CodeArtifact** (lee los [**detalles en esta publicaci贸n del blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\ AWS solucion贸 esto permitiendo especificar si una biblioteca es interna o externa, para evitar descargar dependencias internas de repositorios externos. ## Encontrando Bibliotecas Vulnerables En la [**publicaci贸n original sobre confusi贸n de dependencias**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610), el autor busc贸 miles de archivos package.json expuestos que conten铆an las dependencias de proyectos de javascript. ## Referencias * [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)
{% embed url="https://websec.nl/" %} {% hint style="success" %} Aprende y practica Hacking en AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Apoya a HackTricks * Revisa los [**planes de suscripci贸n**](https://github.com/sponsors/carlospolop)! * **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆guenos** en **Twitter** 馃惁 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
{% endhint %}