hacktricks/pentesting-web/proxy-waf-protections-bypass.md

7.1 KiB
Raw Blame History

Proxy / WAF Korumalarını Atlatma

AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

{% embed url="https://websec.nl/" %}

Nginx ACL Kurallarını Yol Adı Manipülasyonu ile Atlatma

Teknikler bu araştırmadan.

Nginx kuralı örneği:

location = /admin {
deny all;
}

location = /admin/ {
deny all;
}

NodeJS - Express

Nginx Sürümü Node.js Atlatma Karakterleri
1.22.0 \xA0
1.21.6 \xA0
1.20.2 \xA0, \x09, \x0C
1.18.0 \xA0, \x09, \x0C
1.16.1 \xA0, \x09, \x0C

Flask

Nginx Sürümü Flask Atlatma Karakterleri
1.22.0 \x85, \xA0
1.21.6 \x85, \xA0
1.20.2 \x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B
1.18.0 \x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B
1.16.1 \x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B

Spring Boot

Nginx Sürümü Spring Boot Atlatma Karakterleri
1.22.0 ;
1.21.6 ;
1.20.2 \x09, ;
1.18.0 \x09, ;
1.16.1 \x09, ;

PHP-FPM

Nginx FPM yapılandırması:

location = /admin.php {
deny all;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

Nginx, /admin.php erişimini engellemek için yapılandırılmış olsa da, bu engeli /admin.php/index.php'ye erişerek atlayabilirsiniz.

Nasıl Önlenir

location ~* ^/admin {
deny all;
}

Mod Güvenlik Kurallarını Atlatma

Yol Karışıklığı

Bu yazıda, ModSecurity v3'ün (3.0.12'ye kadar) REQUEST_FILENAME değişkeninin yanlış şekilde uygulandığııklanmaktadır. Bu değişken erişilen yolun (parametrelerin başlangıcına kadar) içermesi gerekiyordu. Bu, yolu almak için bir URL çözümlemesi yaptığı için gerçekleşmiştir.
Bu nedenle, mod güvenlikte http://example.com/foo%3f';alert(1);foo= gibi bir istek, yolun sadece /foo olduğunu varsayacaktır çünkü %3f, URL yolunu bitirerek ?'e dönüşür, ancak aslında sunucunun alacağı yol /foo%3f';alert(1);foo= olacaktır.

REQUEST_BASENAME ve PATH_INFO değişkenleri de bu hatadan etkilenmiştir.

Mod Security'nin 2. sürümünde de benzer bir durum yaşanmıştır. Bu durum, yedek dosyalarla ilişkili belirli uzantılara (örneğin .bak) sahip dosyalara erişimi engelleyen bir korumayı atlamayı mümkün kılmıştır. Sadece nokta URL kodlanarak (%2e), örneğin: https://example.com/backup%2ebak, nokta gönderilerek basitçe atlanabilmiştir.

AWS WAF ACL Atlatma

Hatalı Başlık

Bu araştırma, HTTP başlıkları üzerinde uygulanan AWS WAF kurallarını atlatmanın, AWS tarafından düzgün şekilde ayrıştırılmayan ancak arka uç sunucusu tarafından ayrıştırılan "hatalı" bir başlık gönderilerek mümkün olduğunu belirtmektedir.

Örneğin, aşağıdaki isteği SQL enjeksiyonu içeren X-Query başlığı ile göndermek:

GET / HTTP/1.1\r\n
Host: target.com\r\n
X-Query: Value\r\n
\t' or '1'='1' -- \r\n
Connection: close\r\n
\r\n

Referanslar

{% embed url="https://websec.nl/" %}

Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları: