hacktricks/pentesting-web/dependency-confusion.md

6.1 KiB
Raw Blame History

Bağımlılık Karışıklığı

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

{% embed url="https://websec.nl/" %}

Temel Bilgiler

Özetle, bir bağımlılık karışıklığı zafiyeti, bir proje yanlış yazılmış bir kütüphaneyi kullandığında, mevcut olmayan veya belirtilmemiş bir sürümle ve kullanılan bağımlılık deposunun güncellenmiş sürümleri toplamaya izin verdiğinde meydana gelir.

  • Yanlış yazılmış: requests yerine reqests içe aktar
  • Mevcut olmayan: Artık mevcut olmayan iç bir kütüphane olan company-loggingi içe aktar
  • Belirtilmemiş sürüm: Mevcut company-requests kütüphanesini içe aktar, ancak depo genel depoları kontrol ederek daha büyük sürümlerin olup olmadığını kontrol eder.

Sömürü

{% hint style="warning" %} Tüm durumlarda saldırganın sadece kurban şirketin kullandığı kütüphanelerin adını taşıyan zararlı bir paket yayınlaması yeterlidir. {% endhint %}

Yanlış Yazılmış & Mevcut Olmayan

Şirketinizin iç olmayan bir kütüphaneyi içe aktarmaya çalıştığında, kütüphanelerin deposunun bunu genel depolarda arayacağı oldukça olasıdır. Eğer bir saldırgan bunu oluşturduysa, kodunuz ve çalışan makineleriniz büyük olasılıkla tehlikeye girecektir.

Belirtilmemiş Sürüm

Geliştiricilerin kütüphanenin 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 bilinen harici bir kütüphane ise (örneğin python requests), bir saldırgan pek bir şey yapamaz, çünkü requests adında bir kütüphane oluşturamaz (orijinal yazar değilse).
Ancak, kütüphane ise, bu örnekte olduğu gibi requests-company, eğer kütüphane deposu dışarıdan yeni sürümleri de kontrol etmeye izin veriyorsa, genelde bulunan yeni bir sürüm arayacaktır.
Bu nedenle, bir saldırganın şirketin requests-company kütüphanesini 1.0.1 sürümü olarak kullandığını bildiğini varsayalım (küçük güncellemelere izin verir). O, requests-company kütüphanesini 1.0.2 sürümünü yayınlayabilir ve şirket iç kütüphanenin yerine bu kütüphaneyi kullanacaktır.

AWS Düzeltme

Bu zafiyet, AWS CodeArtifact'da bulundu (detayları bu blog yazısında okuyun).
AWS, iç bağımlılıkların dış depolardan indirilmesini önlemek için bir kütüphanenin içsel veya harici olup olmadığını belirtmeye izin vererek bunu düzeltti.

Zafiyetli Kütüphanelerin Bulunması

Bağımlılık karışıklığı hakkındaki orijinal yazıda yazar, binlerce açıkta kalan package.json dosyasını arayarak javascript projelerinin bağımlılıklarını aradı.

Referanslar

{% embed url="https://websec.nl/" %}

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!