<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmaya kadar öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Ş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 (https://github.com/sponsors/carlospolop)!
* [**PEASS Ailesi**]'ni keşfedin (https://opensea.io/collection/the-peass-family), özel [**NFT'ler**]'imiz koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
Bu teknik ve yaygın bir HTTP İstek kaçırma arasındaki **ana fark**, **kurbanın isteğine bir önek ekleyerek saldırmak yerine**, **kurbanın aldığı yanıtı sızdırmak veya değiştirmek**tir. Bunun için, HTTP İstek kaçırma saldırısını kötüye kullanmak için yarım bir istek göndermek yerine, **arka arkaya 2 tam istek göndererek proxy yanıtlarının kuyruğunu desenkronize etme**yi hedefliyoruz.
Bu, **yanıt kuyruğunu desenkronize edebileceğimiz anlamına gelir**, böylece **kurbanın meşru isteğinden gelen yanıt saldırgana gönderilir** veya **saldırganın kontrol ettiği içerik kurbanın yanıtına enjekte edilir**.
HTTP/1.1, **önceki istekleri beklemeye gerek olmadan farklı kaynaklar istemeyi** sağlar. Bu nedenle, bir **proxy** varsa, arka uca gönderilen isteklerin ve oradan gelen yanıtların **senkronize eşleşmesini sağlamak proxylerin görevidir**.
Ancak, yanıtların kuyruğunu desenkronize etme sorunu vardır. Bir saldırgan bir HTTP Yanıt kaçırma saldırısı gönderirse ve **ilk istek ve kaçırılan yanıt hemen yanıtlanırsa**, kaçırılan yanıt, kurbanın yanıt kuyruğuna **eklenmez, sadece bir hata olarak atılır**.
Bu nedenle, **kaçırılan isteğin sunucuda işlenmesi daha uzun sürmelidir**. Bu nedenle, kaçırılan istek işlendiğinde, saldırganla iletişim kurulmuş olacak.
Bu belirli durumda bir **kurban bir istek gönderdiğinde** ve **kaçırılan istek önce yanıtlandığında**, **kaçırılan yanıt kurbanın yanıtına gönderilecektir**. Bu nedenle, saldırgan **kurban tarafından "gerçekleştirilen" isteği kontrol edecek**.
Yaygın bir **HTTP İstek Kaçırma** saldırısından **farklı** bir **ilginç fark**, yaygın bir kaçırma saldırısında **kurbanın isteğinin başlangıcını değiştirmenin** hedef olduğu, **HTTP Yanıt kaçırma saldırısında**, **tam istekler gönderdiğinizden**, bir payload içine onlarca yanıt enjekte edebileceğinizdir, bu da onlarca kullanıcının **enjekte edilen yanıtları alan** ve **desenkronize olan** kullanıcılar olacağı anlamına gelir.
Meşru kullanıcılara daha kolayca onlarca saldırıyı**dağıtabilme** yeteneğinin yanı sıra, bu aynı zamanda sunucuda bir **DoS** oluşturmak için de kullanılabilir.
Bu **zaman alıcı istek, kurbanın yanıtını çalmayı denemek için yeterlidir**. Ancak daha karmaşık bir saldırı gerçekleştirmek istiyorsanız, bu saldırı için yaygın bir yapı olacaktır.
Öncelikle, **HTTP İstek Kaçırma**'yı kötüye kullanarak **ilk** istek, ardından **zaman alan istek** ve ardından **kurbanlara gönderilecek yanıtların****1 veya daha fazla payload isteği**.
Bilinen HTTP İstek Kaçırma payloadları gibi, **kurbanın isteğini çalabilirsiniz** ancak önemli bir farkla: Bu durumda, **yanıtta yansıtılacak içeriği göndermek yeterlidir**, **kalıcı depolama gerekli değildir**.
Sonra, **ilk istek** (mavi) **işlendikten sonra** ve **uyuyan** istek işlenirken (sarı) **kurbanın gönderdiği bir sonraki istek**, yansıtılan parametrenin hemen ardından kuyruğa **eklenecektir**:
Sonra, **kurban**, **uyuyan** isteğin yanıtını**alacak** ve bu sırada **saldırgan****başka bir istek gönderirse**, **yansıtılan içerik isteğinin yanıtı ona gönderilecektir**.
Bu noktaya kadar, HTTP İstek Kaçırma saldırılarını kötüye kullanarak bir **istemcinin alacağı yanıtı kontrol etmeyi** ve ardından **kurban için amaçlanan yanıtı çalmayı** öğrendik.
**HEAD** isteği gibi ilginç istekler vardır ki, **yanıtın gövdesinde hiçbir içerik olmaması gerektiği** belirtilir ve (zorunlu olarak) **GET isteği gibi Content-Length** içermesi gerekir.
Sonra, **kurban**, **HEAD** isteğinden gelen **yanıtı alacak**, bu yanıt **Content-Length içerecek ancak hiçbir içerik olmayacak**. Bu nedenle, proxy, bu yanıtı kurbanın yanına **göndermeyecek**, ancak **bazı içerik bekleyecek**, aslında **saldırgan tarafından da enjekte edilen sarı isteğin yanıtı olacak**:
Önceki örneği takip ederek, **yanıtı alacak kurbanın isteğinin gövdesini kontrol edebileceğinizi** ve bir **HEAD yanıtının genellikle başlıklarında****Content-Type ve Content-Length**'i içerdiğini bildiğinizde, XSS'e neden olmak için aşağıdaki gibi bir istek gönderebilirsiniz **XSS'e karşı savunmasız olmayan sayfada**:
Önceki yorumlanmış yanıt desenkronizasyon İçerik Karışıklığı saldırısını istismar ederek, **önbellek, kurban tarafından gerçekleştirilen isteğin yanıtını saklarsa ve bu yanıt bir XSS'e neden olan enjekte edilmiş bir yanıtsa, o zaman önbellek zehirlenir**.
Bu durumda **"kurban" saldırgan ise** artık **kötü niyetli yanıtla önbellek zehirlenmesi yapabilir** çünkü **kötü niyetli yanıtla önbelleğe alınacak URL'yi kontrol edebilir**.
Bu saldırının **amacı**, **yanıt desenkronizasyonunu** tekrar **istismar ederek proxy'nin %100 saldırgan tarafından oluşturulan bir yanıt göndermesini sağlamaktır**.
Bunu başarmak için, saldırganın, yanıtın içinde bazı değerleri yansıtan web uygulamasının bir uç noktasını**bulması ve HEAD yanıtının içeriğinin uzunluğunu bilmesi gerekir**.
Ancak, **yansıtılan verilerin HEAD yanıtının Content-Length'ine göre bir boyuta sahip olduğuna** dikkat edin, bu da **yanıt kuyruğunda geçerli bir HTTP yanıtı oluşturdu**.
Bu nedenle, **ikinci kurbanın sonraki isteği** tamamen saldırgan tarafından oluşturulan bir yanıt alacaktır. Yanıt tamamen saldırgan tarafından oluşturulduğundan, aynı zamanda **proxy'nin yanıtı önbelleğe almasını sağlayabilir**.