5.1 KiB
Yükseltme Başlığı Kaçırma
AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- **💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Try Hard Güvenlik Grubu
{% embed url="https://discord.gg/tryhardsecurity" %}
H2C Kaçırma
Açık Metin Üzerinden HTTP2 (H2C)
H2C veya açık metin üzerinden http2, geçici HTTP bağlantılarının normundan saparak standart bir HTTP bağlantısını sürekli bir bağlantıya yükseltir. Bu yükseltilmiş bağlantı, düz metin HTTP'nin tek istek doğasına karşı, sürekli iletişim için http2 ikili protokolünü kullanır.
Kaçırma sorununun özü, bir ters proxy'nin kullanımıyla ortaya çıkar. Normalde, ters proxy HTTP isteklerini işler ve arka uca ileterek ardından arka uç yanıtını döndürür. Ancak, bir HTTP isteğinde Connection: Upgrade
başlığı bulunduğunda (genellikle websocket bağlantılarıyla görülür), ters proxy istemci ve sunucu arasında sürekli bir bağlantıyı sürdürür, belirli protokollerin gerektirdiği sürekli değişimi kolaylaştırır. H2C bağlantıları için, RFC'ye uyum, üç belirli başlığın varlığını gerektirir:
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings
Zafiyetli Proxy'ler
Zafiyet, bir bağlantıyı yükselttikten sonra ters vekilin bireysel istekleri yönetmeyi bırakması ve yönlendirmenin bağlantı kurulduktan sonra tamamlandığını varsayması durumunda ortaya çıkar. H2C Smuggling'in sömürülmesi, başarılı bir H2C bağlantısı başlatıldığında, istek işleme sırasında uygulanan ters vekil kurallarını atlamayı sağlar, örneğin yol tabanlı yönlendirme, kimlik doğrulama ve WAF işleme.
Zafiyetli Proxy'lerin Upgrade
ve bazen Connection
başlıklarını nasıl işlediğine bağlıdır. Aşağıdaki proxy'ler bu başlıkları varsayılan olarak iletir ve böylece H2C smuggling'i varsayılan olarak etkinleştirir:
- HAProxy
- Traefik
- Nuster
Bununla birlikte, aşağıdaki hizmetler bu başlıkları varsayılan olarak iletmez. Ancak, Upgrade
ve Connection
başlıklarının filtresiz iletilmesine izin veren güvensiz bir şekilde yapılandırılmış olabilirler:
- AWS ALB/CLB
- NGINX
- Apache
- Squid
- Varnish
- Kong
- Envoy
- Apache Traffic Server
Sömürü
Uyumlu bir H2C bağlantı yükseltmesi için gereken başlıkları varsayılan olarak ileten tüm sunucuların olmadığını belirtmek önemlidir. Bu nedenle, AWS ALB/CLB, NGINX ve Apache Traffic Server gibi sunucular H2C bağlantılarını doğal olarak engeller. Bununla birlikte, bazı arka uçların standartlara uymayabileceği için, uyumsuz Connection: Upgrade
varyantı ile test etmek faydalı olabilir.
{% hint style="danger" %}
proxy_pass
URL'sinde belirtilen belirli yol (örneğin, http://backend:9999/socket.io
) bağlantının varsayılan olarak http://backend:9999
olmasına neden olur. Bu, bu tekniği kullanarak bu dahili uç noktadaki herhangi bir yola etkileşim sağlar. Dolayısıyla, proxy_pass
URL'sinde bir yol belirtmek erişimi kısıtlamaz.
{% endhint %}
BishopFox tarafından h2csmuggler ve assetnote tarafından h2csmuggler araçları, bir H2C bağlantısı kurarak proxy tarafından uygulanan korumaları atlamaya yönelik girişimleri kolaylaştırır ve bu sayede proxy tarafından korunan kaynaklara erişimi sağlar.
Bu zafiyetle ilgili daha fazla bilgi için özellikle NGINX hakkında bu detaylı kaynağa başvurun.