Proxy / WAF Protections Bypass
Nginx ACL Kurallarını Yol Adı Manipülasyonu ile Atlatma
Teknikler bu araştırmadan.
Nginx kuralı örneği:
NodeJS - Express
Nginx Sürümü | Node.js Atlatma Karakterleri |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
Flask
Nginx Sürümü | Flask Atlatma Karakterleri |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
Spring Boot
Nginx Sürümü | Spring Boot Atlatma Karakterleri |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
PHP-FPM
Nginx FPM yapılandırması:
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
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ığı açı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:
Referanslar
Last updated