THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

All in One SEO Pack Xss Vuln

JohnDoe - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2013
Nereden:
Teşkilat
Yaş:
34
Mesajlar:
2.717
Konular:
572
Teşekkür (Etti):
805
Teşekkür (Aldı):
929
Ticaret:
(0) %
17-09-2015 14:16
#1
All in One SEO Pack Xss Vuln


Sistemimiz Wordpress’e ait All in One SEO Pack eklentisidir. Bulunan zaafiyet Xss olmasına rağmen javascript kullanıldığı için daha ciddi zaafiyetlere yol açabileceğini düşünüyorum. Tabiki bunları daha detaylı anlatacağım fakat ondan önce kısaca eklenti hakkında bilgiler vermek istiyorum.

Zaafiyetimiz eklentimizin 2.2.7.1 sürümünde ortaya çıkmıştır. Eklentiye hem indirebileceğiniz hemde işlevi konusunda detay bulabileceğiniz adrese buradan ulaşabilirsiniz.

Zaafiyete neden olan dosya ve kodlara geçelim hemen. aioseop_class.php dosyasında yer alan 266. satırın filtrelenmemesinden dolayı Xss zaafiyeti ortaya çıkmıştır. İlk önce 266. satırı görelim daha sonra htmlspecialchars ile fixleyelim.

Zaafiyete sebep olan hali;

Alıntı:
$target = $_POST[’target_ M E T A ’];
Fixlenmiş hali;

Alıntı:
$target = htmlspecialchars($_POST[’target_M E T A’]);
Biz bu zaafiyeti htmlspecialchars ile değilde 264. satırda yer alan intval kodu ilede fixleyebilirdir. Nasıl yani ? Diye bir soruyla karşılaşacak olursak hemen 264. satırıda verelim;

Alıntı:
$post_id = intval($_POST[’post_id’]);
Burda ki POST değişkeni intval ile filtrelenmiş. Peki biz neden intval kullanamıyoruz ?

Baktığımız zaman bizim 266. satırdaki kodumuzda target_M E T A kullanılmış. Burada intval kullandığımız takdirde **** ile çağrıştırılan tüm dosya veya değişkenlerin önüne geçmiş oluruz. Kısacası emeklerimizi kendi kendimize heba etmiş oluruz

Şimdi asıl detaylıca bakacağımız 281. satıra gelelim.

Kod:
$output = ’<a id="’ . $target . ’editlink’ . $post_id . ’" class="aioseop_edit_link" href= "javascript:****(0);"’ . ’onclick=\\’aioseop_ajax_edit_****_form(’ . $post_id . ’, "’ . $target . ’", "’ . $nonce . ’")
Aslında kodların devamı var fakat içerik yöneticisi sağolsun konu açarken beni baya zorladığı için sadece işimize yarayan kısmı veriyorum Burda yer alan ’onclick=\\’aioseop_ajax_edit_****_form(’ . $post_id . ’, "’ . $target . ’", "’ . $nonce . ’"); kısmı bizim için çok önemlidir.

Javascript kodlarının sayfa yenilemeden yaptığı veri alışverişi hangi .php dosyası ile yapıldığının takibi sonucunda Sql İnjection açığına kadar derinlemesine zaafiyetler ile karşılaşabiliriz.

Çünkü aioseop_ajax_edit_M E T A_form ile $post_id - $target - $nonce gibi değerlere veri alınıyor veya gönderiliyor. Bu verilerin databaseye gönderimi veya alımı esnasında $post_id kısmına tırnak işaretleri ile hata verdirtebiliriz. Nedeni ise kodlarımızda $post_id geçmesine rağmen o kısma herhangi bir id=10 gibi değer gelebilir. Daha doğrusu çeşitli id değerlerinin gelmesi için javascript devreye girmiştir.

Yukarıda da dediğim gibi aioseop_ajax_edit_M E T A_form kodunun kullandığı dosya tespit edilirse daha detaylı ve kesin sonuçlara ulaşmak mümkündür. Şuanda 281. satır için yaptığımız değerlendirme sadece yüksek olasılıklarla sınırlı kalmaktadır.
--------------------- " TürkHackTeam "Vatan Operasyonu" 4093 Site Hacked [Şehitler Ölmez Vatan Bölünmez ! "
Türkiye'nin tek milli ve yerli #Hack grubu TürkHackTeam'dır. İçiniz rahat olsun biz buradayız.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler