Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | Reverse Proxy Attack

Reverse Proxy Attack

Proxy nedir?

Proxy(Vekil Sunucu), internete erişim sırasında kullanılan bir ara sunucudur. Proxy bir web sitesine erişim sağlarken doğrudan bağlantı kurmaz. Proxyler aracı olarak davranırlar. Bağlantı, client üzerinden proxy’ye ilerler ve internete buradan çıkar. Bu şekilde client geçici süreliğine de olsa kimliğini gizler.

Avantajları nelerdir?

  • Daha önce proxy üzerinden girilmiş web sitelerini önbelleğe alıp sonraki ziyarette daha hızlı bir şekilde erişim sağlar.
  • Erişimin engellenmesi durumunda Proxy kullanılarak izin verilmeyen sitelere erişim sağlanır.
  • Erişim konusunda seçicidir. Proxy üzerinden nereye girmek veya girmemek istediğini yönetebilir. Aynı şekilde kimin hangi sayfaya girdiğini belleğe kayıt eder.

proxy

Proxy Server Örneği

Reverse Proxy Nedir?

Reverse Proxy(Ters Vekil Sunucu), sıradan sunucu(server) olmak isteyenler için kullanılan bir proxy server’dır. Altında bir veya daha fazla web server barındırır.

  • Güvenilir web siteleri oluşturulduğu zaman SSL şifrelemesi web server tarafından yapılmaz fakat Reverse Proxy SSL Hızlandırma donanımına sahiptir.
  • Altında bir veya daha fazla web server barındırır demiştik. Peki bunun avantajı nedir? Reverse Proxy tek web serverdan ziyade altında başka web serverları da barındırması durumunda yükü tüm web serverlara dağıtabilir. Her web server kendi uygulama alanına özel servis sağlar.
  • Reverse Proxy yükleme zamanını hızlandırmak için içeriğin boyutunu düzenler ve içeriği sıkıştırabilir.
  • Reverse Proxy savunma katmanı görevi de görür ve bazı işletim sistemlerini ve web serverlarını saldırılarına karşı korur. Ancak, genellikle büyük bir tehdit olarak kabul edilen, web uygulaması veya hizmetinin kendisine karşı olan saldırıları için herhangi bir koruma sağlayamaz.
Ters Vekil Sunucu Örneği

Reverse Proxy Server Örneği

 

Reverse Proxy Saldırısı

CVE-2011-4317 ve CVE-2011-3368 Zaafiyetleri

Bu iki zaafiyet Apache HTTP Server’ının 1.3.x <= 1.3.42, 2.0.x <= 2.0.64, ve 2.2.x <= 2.2.21 versiyonlarında bulunur. Apache’nin mod_proxy adındaki bir modulünün yanlış konfigüre edilmesi sonucu oluşurlar. Bu konfigürasyon kurallarının adları RewriteRule ve ProxyPassMatch‘tir. ‘@’ karakteri ile hedef URL’imiz bozularak bu zaafiyetler çalıştırılabilir hale getirilir. Zaafiyetlerin kullanılması durumda Reverse Proxy Server arkasındaki bütün sunuculara ulaşılabilir. İki zaafiyetin birbirinden tek farkı CVE-2011-4317’de ‘ : ‘ karakterinin de URL’i bozmasıdır. RewriteRule ve ProxyPassMatch konfigürasyon kurallarını inceleyelim.

 

RewriteRule

Adresimize yeni bir alt klasör eklenmesi durumu için kullanılır. Örneğin http://testsite.com adresine deneme adında bir alt klasör eklediğimiz zaman eğer kuralımız doğruysa elimizde http://testsite.com/deneme adında bir adres olacaktır.

Doğru Kural  :   RewriteRule   ^(.*)     http://testsite.com/$1

Yanlış Kural   :   RewriteRule  ^(.*)      http://testsite.com$1

 

ProxyPassMatch

Bu kural da yeni bir dosya(.jpg , .pdf , .gif vs.) eklenmesi durumu için kullanılır.

Doğru Kural  :   ProxyPassMatch    (.*)\.(jpg|gif|png)     http://testsite.com/$1.$2

Yanlış Kural   :   ProxyPassMatch    (.*)\.(jpg|gif|png)     http://testsite.com$1.$2

 

Dikkat ederseniz zaafiyetin ‘/’ karakteri kullanılmamasından dolayı oluştuğunu görebilirsiniz.

Konfigürasyon kuralı yanlış ise hedefimizi Netcat ile dinlemeye alıp GET @localhost HTTP/1.1\r\n\r\n olmak üzere bir request attığımız zaman şu şekilde yorumlanır.

  • URL parse edilmeye başladığı zaman RewriteRule kuralına göre dönüştürülmeye başlar.
  • Hedefimiz http://[email protected] adresine dönüştürülür.
  • Netcat çıktısında http://testsite.com’un içeriği yerine localhostta bulunan içeriği görürüz.

 

Doğru kural kullanılması durumunda ise :

  • URL parse edildiği zaman tekrar kural uygulanır.
  • Hedefimiz bu sefer http://testsite.com/@localhost adresine dönüştürülür.
  • Hedefimiz üzerinde böyle bir alt klasör bulunmadığı için netcat çıktısında ‘404 Not found’ hata mesajını alırız.

 

Konfigürasyonun yanlış yapılması sonucu neler olabilir daha önemli bir senaryo üzerinden gidelim.

GET syra:@testsite.com HTTP/1.1\r\n\r\n şeklinde bir request atalım, RewriteRule kullanımının yanlış olması durumunda Apache bu requesti <kullanıcıadı>@<sunucu> şeklinde okur. Sunucuya erişirken Authentication gerekmiyorsa bu request ile ‘syra’ kullanıcısı adıyla otomatik olarak giriş yapmış oluruz.

Bu akıllara şu soruyu getirebilir. Madem Authentication yok o zaman kullanıcı kullanmamıza ne gerek var? Bu yaptığımız işlemleri Reverse Proxy Server üzerinde yapıyoruz. Yani bize engel olan kurallar var. Bu sebepten dolayı bizim yaptığımız asıl saldırı Reverse Proxy Server’ı bypasslamak. Yazımız burada son buluyor. Bir sonraki yazıda görüşmek üzere!

About CanYouPwnMe

Hero!

Follow Me