Proxy / WAF Protections Bypass

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

HackTricks'ı desteklemenin diğer yolları:

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ığı 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:

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

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

HackTricks'ı desteklemenin diğer yolları:

Last updated