mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
79 lines
5.9 KiB
Markdown
79 lines
5.9 KiB
Markdown
# Bağımlılık Karışıklığı
|
||
|
||
{% hint style="success" %}
|
||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>HackTricks'i Destekleyin</summary>
|
||
|
||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||
|
||
{% embed url="https://websec.nl/" %}
|
||
|
||
|
||
## Temel Bilgiler
|
||
|
||
Özetle, bir bağımlılık karışıklığı açığı, bir projenin **yanlış yazılmış**, **mevcut olmayan** veya **belirtilmemiş bir versiyona** sahip bir kütüphane kullanması ve kullanılan bağımlılık deposunun **güncellenmiş versiyonları kamuya açık** depolardan **toplamasına** izin vermesi durumunda meydana gelir.
|
||
|
||
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktarımı
|
||
* **Mevcut olmayan**: **artık mevcut olmayan** bir iç kütüphane olan `company-logging` içe aktarımı
|
||
* **Belirtilmemiş versiyon**: **mevcut** bir `company-requests` kütüphanesini içe aktarmak, ancak repo **daha büyük versiyonlar** olup olmadığını görmek için **kamuya açık repos** kontrol eder.
|
||
|
||
## Sömürü
|
||
|
||
{% hint style="warning" %}
|
||
Tüm durumlarda, saldırganın sadece kurban şirketin kullandığı kütüphanelerin **adıyla kötü niyetli bir paket yayınlaması** yeterlidir.
|
||
{% endhint %}
|
||
|
||
### Yanlış Yazılmış & Mevcut Olmayan
|
||
|
||
Eğer şirketiniz **iç kütüphane olmayan bir kütüphaneyi içe aktarmaya çalışıyorsa**, kütüphaneler deposunun **kamuya açık depolarda** arama yapması muhtemeldir. Eğer bir saldırgan bunu oluşturmuşsa, kodunuz ve çalışan makinelerinizin büyük ihtimalle tehlikeye girecektir.
|
||
|
||
### Belirtilmemiş Versiyon
|
||
|
||
Geliştiricilerin kullandıkları kütüphanenin **herhangi bir versiyonunu belirtmemesi** veya sadece bir **ana versiyon** belirtmesi oldukça yaygındır. Sonra, yorumlayıcı bu gereksinimlere uyan **en son versiyonu** indirmeye çalışacaktır.\
|
||
Eğer kütüphane **bilinen bir dış kütüphane** ise (örneğin python `requests`), bir **saldırganın yapabileceği pek bir şey yoktur**, çünkü `requests` adında bir kütüphane oluşturamayacaktır (eğer orijinal yazar değilse).\
|
||
Ancak, eğer kütüphane **içsel** ise, bu örnekteki gibi `requests-company`, eğer **kütüphane reposu** **yeni versiyonları dışarıdan kontrol etmeye** izin veriyorsa, kamuya açık olarak mevcut daha yeni bir versiyonu arayacaktır.\
|
||
Yani eğer bir **saldırgan** şirketin `requests-company` kütüphanesinin **1.0.1** versiyonunu kullandığını biliyorsa (küçük güncellemeleri kabul eder). O, `requests-company` kütüphanesinin **1.0.2** versiyonunu **yayınlayabilir** ve şirket bu kütüphaneyi **iç kütüphanesi yerine kullanacaktır**.
|
||
|
||
## AWS Düzeltmesi
|
||
|
||
Bu açık AWS **CodeArtifact**'ta bulundu (bu blog yazısında [**detayları okuyun**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
|
||
AWS, bir kütüphanenin içsel veya dışsal olup olmadığını belirtmeye izin vererek, iç bağımlılıkların dış reposlardan indirilmesini önleyerek bunu düzeltmiştir.
|
||
|
||
## Açık Kütüphaneleri Bulma
|
||
|
||
[**bağımlılık karışıklığı hakkında orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, javascript projelerinin bağımlılıklarını içeren binlerce ifşa edilmiş package.json dosyasını aradı.
|
||
|
||
## Referanslar
|
||
|
||
* [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" %}
|
||
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>HackTricks'i Destekleyin</summary>
|
||
|
||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
|
||
|
||
</details>
|
||
{% endhint %}
|