Apache-Tomcat Gariplikleri ve XSS

3-4-2007

Dün bir sistem ile uğraşırken Tomcat/Apache/Windows üçlüsünün bazı tuhaflıklarını farkettim. Bir JSP sayfasında XSS açığı vardı, Firefox ile beş dakika kadar uğraşıp açığı exploit edemedikten sonra kendimi IE7' a verdim.

IE7 ile aynı isteği yapınca XSS çalıştı. Sayfanın XSS' e açık olduğunu zaten biliyordum çünkü başka bir açıktan kaynak koduna erişmiştim. Tabii ki IE7 ve Firefox' taki bu farklılığı  bekliyordum, zaten o yüzden bunu IE ile de denemek istedim.

Detaylara gelince;
IE adres kutusunda yazdığınız her karakteri RFC' ye göre URL Encode edip göndermiyor. Firefox ise her zaman URL Encode dan geçirip gönderiyor. Tuhaflık şudur ki bu Tomcat-Apache URL' de encoded tag karakterlerini "<",">" decode etmiyor (bu kesinlikle çok tuhaf). Dolayısıyla Firefox' ta bunu demonstre edemiyoruz. Hatta ilginçtir ki Firefox ile tıkladığınız URL adresleri bir encode ediliyor, bu durumda belki bu tip açıkları exploit etmek bile mümkün olmayabilir.

Neyi merak ettiğinizi biliyorum, peki RFC ne diyor? RFC açıkça belirtiyor ki bu karakterler encode edilmelidir.

 

URLs are written only with the graphic printable characters of the US-ASCII coded character set. The octets 80-FF hexadecimal are not used in US-ASCII, and the octets 00-1F and 7F hexadecimal represent control characters; these must be encoded.

The characters "<" and ">" are unsafe ...

Recent Blog Posts

See all of the blog posts