hacktricks/pentesting-web/dependency-confusion.md

65 lines
5.6 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# Bağımlılık Karışıklığı
2022-11-29 16:54:14 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
2022-11-29 16:54:14 +00:00
</details>
2024-02-10 18:14:16 +00:00
## Temel Bilgiler
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
Özet olarak, bir bağımlılık karışıklığı zafiyeti, bir projenin **yanlış yazılmış**, **var olmayan** veya **belirtilmemiş bir sürümle** bir kütüphaneyi kullandığı durumlarda ve kullanılan bağımlılık deposu, **güncellenmiş sürümleri halka açık** depolardan toplamaya izin veriyorsa ortaya çıkar.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
* **Yanlış yazılmış**: `requests` yerine **`reqests`** içe aktar
* **Var olmayan**: Artık **var olmayan** bir dahili kütüphane olan `company-logging`i içe aktar
* **Belirtilmemiş sürüm**: Bu örnekte olduğu gibi **dahili** **var olan** `company-requests` kütüphanesini içe aktar, ancak depo **halka açık depoları** kontrol ederek **daha büyük sürümler** olup olmadığına bakar.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
## Sömürü
2022-11-29 16:54:14 +00:00
{% hint style="warning" %}
2024-02-10 18:14:16 +00:00
Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin **adını taşıyan kötü amaçlı bir paket yayınlaması** yeterlidir.
2022-11-29 16:54:14 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### Yanlış Yazılmış ve Var Olmayan
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
Şirketinizin **dahili olmayan bir kütüphaneyi içe aktarmaya çalıştığı** durumlarda, büyük olasılıkla kütüphane deposu bunu **halka açık depolarda** arayacaktır. Eğer bir saldırgan bunu oluşturmuşsa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
### Belirtilmemiş Sürüm
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
Geliştiricilerin genellikle kullanılan kütüphanenin **herhangi bir sürümünü belirtmemesi** veya sadece bir **ana sürümü belirtmesi** çok yaygındır. Ardından, yorumlayıcı bu gereksinimleri karşılayan **en son sürümü indirmeye çalışacaktır**.\
Eğer kütüphane, python `requests` gibi **bilinen bir harici kütüphaneyse**, bir saldırgan çok fazla bir şey yapamaz, çünkü `requests` adında bir kütüphane oluşturamaz (orijinal yazar değilse).\
Ancak, bu örnekte olduğu gibi kütüphane **dahili** ise, `requests-company` gibi, eğer **kütüphane deposu** yeni sürümleri **harici olarak kontrol etmeye izin veriyorsa**, daha yeni bir sürümü halka açık olarak arayacaktır.\
Bu nedenle, bir saldırgan şirketin `requests-company` kütüphanesini **1.0.1 sürümünü** (küçük güncellemelere izin ver) kullandığını **biliyorsa**, `requests-company` kütüphanesini **1.0.2 sürümünü yayınlayabilir** ve şirket **dahili olan yerine bu kütüphaneyi kullanacaktır**.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
## AWS Düzeltmesi
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
Bu zafiyet AWS **CodeArtifact**'da bulundu (bu blog yazısındaki [**detayları okuyun**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS, dahili bağımlılıkların harici depolardan indirilmesini önlemek için bir kütüphanenin dahili veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
## Zafiyetli Kütüphaneleri Bulma
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
[**Bağımlılık karışıklığı hakkındaki orijinal yazıda**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) yazar, binlerce açığa çıkarılmış package.json dosyasını arayarak JavaScript projelerinin bağımlılıklarını buldu.
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
## Referanslar
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)
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
2022-11-29 16:54:14 +00:00
2024-02-10 18:14:16 +00:00
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi [hacktricks repo'ya](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo'ya](https://github.com/carlospolop/hacktricks-cloud) PR göndererek paylaşın**.
2022-11-29 16:54:14 +00:00
</details>