<summary><strong>AWS hackleme konusunda sıfırdan kahramana 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 vermek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
Bu teknik ve yaygın bir HTTP İstek smuggling 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**. Bunun için, HTTP İstek smuggling'i istismar etmek için 1 istek ve yarım göndermek yerine, **proxy'lerin yanıtlarının sırasını desenkronize etmek için 2 tam istek gönderiyoruz**.
Bu, **yanıt kuyruğunu desenkronize edebileceğimiz anlamına gelir**, böylece kurbanın **meşru isteğinin yanıtı saldırgan tarafından gönderilir** veya saldırganın kontrol ettiği içeriği kurbanın yanıtına enjekte ederiz.
HTTP/1.1, **önceki istekleri beklemeye gerek duymadan****farklı kaynakları istemek** için izin verir. Bu nedenle, **bir proxy** varsa, proxy'nin, **arka uçtaki gönderilen isteklerin ve gelen yanıtların senkronize bir eşleşmesini koruması** gerekir.
Ancak, yanıtların kuyruğunu desenkronize etme sorunu vardır. Eğer bir saldırgan bir HTTP Yanıtı smuggling saldırısı gönderirse ve **ilk istek ve smuggling yapılan isteklere yanıtlar hemen yanıtlanırsa**, smuggling yanıtı kurbanın yanıt kuyruğuna **eklenmez, sadece bir hata olarak atılır**.
Bu nedenle, smuggling yapılan isteğin işlenmesi daha uzun sürmesi gerekmektedir. Bu şekilde, smuggling yapılan istek işlendiğinde, saldırganla iletişim sona ermiş olacaktır.
Eğer bu özel durumda bir **kurban bir istek göndermişse** ve **smuggling yapılan isteğe yanıt önce** gelirse, **smuggling yanıtı kurbanın yanıtına gönderilecektir**. Bu durumda saldırgan, kurban tarafından "gerçekleştirilen" isteği **kontrol edecektir**.
Yaygın bir HTTP İstek Smuggling'den **ilginç bir fark**, yaygın bir smuggling saldırısında, **hedefin isteğinin başını değiştirerek beklenmedik bir eylem gerçekleştirmektir**. Bir **HTTP Yanıtı smuggling saldırısında**, tam istekler gönderdiğiniz için **bir payload içine onlarca yanıt enjekte edebilirsiniz**, bu da onlarca kullanıcının **enjekte edilen yanıtları desenkronize edeceği** anlamına gelir.
Meşru kullanıcılara daha kolay bir şekilde onlarca saldırı dağıtabilme yeteneği dışında, bu aynı zamanda sunucuda bir **DoS** (Hizmet Reddi) oluşturmak için de kullanılabilir.
Bu zaman alıcı istek, sadece kurbanın yanıtını çalmak istiyorsanız yeterlidir. Ancak daha karmaşık bir saldırı gerçekleştirmek istiyorsanız, bu saldırı için yaygın bir yapıdır.
Öncelikle, HTTP İstek Smuggling'i istismar eden **ilk** istek, ardından **zaman alıcı istek** ve ardından yanıtları kurbanlara gönderilecek **1 veya daha fazla payload isteği**.
Bilinen HTTP İstek Smuggling payloadları gibi, kurbanın isteğini **çalabilirsiniz**, ancak önemli bir farkla: Bu durumda, **yanıtta yansıtılan içeriği göndermek** için **kalıcı depolama gerekmez**.
Daha sonra, **ilk istek** (mavi) **işlendi** ve **uykulu** olan işlenirken (sarı), **bir kurbandan gelen sonraki istek, yansıtılan parametrenin hemen ardından kuyruğa eklenecektir**:
Daha sonra, **kurban**, **uykulu** 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**.
Önceki örneği takip ederek, **yanıtı alacak olan kurbanın isteğin gövdesini kontrol edebileceğinizi** ve bir **HEAD yanıtının genellikle başlıklarında Content-Type ve Content-Length'in** bulunduğunu bilerek, XSS saldırısına neden olmadan kurbanda XSS olmayan bir sayfada XSS oluşturmak için aşağıdaki gibi bir istek gönderebilirsiniz:
Önceden belirtilen yanıt desenkronizasyonu İçerik Karışıklığı saldırısını kötüye kullanarak, **önbellek, kurban tarafından gerçekleştirilen isteğin yanıtını saklarsa ve bu yanıt XSS'e neden olan bir enjekte edilmiş yanıt ise, önbellek zehirlenir**.
Bu durumda **"kurban" saldırgan ise**, artık **kötü niyetli yanıtla önbelleğe zehirleme yapabilir**, çünkü **kötü niyetli yanıtla önbelleğe alınacak URL'yi kontrol edebilir**.
Bu saldırının amacı, tekrar **yanıt desenkronizasyonunu kötüye kullanarak 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çerik uzunluğunu bilmesi gerekmektedir.
Ancak, **yansıtılan verinin HEAD yanıtının Content-Length'ine göre bir boyuta sahip olduğuna** dikkat edin, bu da **yanıt sırasında geçerli bir HTTP yanıtı oluşturdu**.
Bu nedenle, **ikinci kurbanın bir sonraki isteği**, **saldırgan tarafından tamamen oluşturulan bir yanıtı alacaktır**. Yanıt tamamen saldırgan tarafından oluşturulduğu için **proxy'nin yanıtı önbelleğe almasını da sağlayabilir**.
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
* Şirketinizi HackTricks'te **tanıtmak veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live).