Bir bilgisayar korsanı blog_charset değerini UTF-7 olarak değiştirirse, bu WordPress'i başka saldırılara karşı savunmasız hale getirir mi?


19

Son zamanlarda saldırıya uğrayan bir müşterim vardı ve sitesinde  ve Æ gibi garip karakterler olduğunu fark ettim. Bilgisayar korsanlarının wp_optionsveritabanındaki tabloda blog_charset değerini UTF-7 olarak değiştirdiği ortaya çıktı . UTF-8'e geri ayarladım, ancak UTF-7'ye ayarlandığı süre boyunca bunun herhangi bir güvenlik açığı yaratabileceğini merak ediyordum.

Biraz arama yaptım ve 2.0.6 sürümünde düzeltilmiş bir WordPress UTF-7 güvenlik açığı olduğunu keşfettim . WordPress'in en son sürümünü kullanıyoruz, bu yüzden bu sömürüyü kullanamazlardı, ancak UTF-7 ile ilgili başka istismarlar var mı? Gerçekten, bilgisayar korsanlarının blog_charset'i acıdan başka bir şekilde değiştirmesinin bir nedeni var mı? Nasıl girdiklerini belirlemeye çalışıyorum ve bunun bir şekilde bağlantılı olup olmadığını merak ediyorum.

Yanıtlar:


23

<ve UTF-7> olarak +ADw-ve +AD4-içinde kodlanmıştır . Şimdi aşağıdakileri hayal edin:

  1. Birisi +ADw-script+AD4-alert(+ACI-Hello+ACI-)+ADw-/script+AD4-yorum metni olarak gönderir . Tüm sanitasyonlardan kaçmadan geçecek.

  2. Veritabanı, gelen tüm verileri UTF-8 olarak bekler ve ele alır. Tüm UTF-7 akışları çok geçerli UTF-8 olduğundan, bu SQL hatasına neden asla ve mysql_real_escapeya htmlspecialcharsdokunma olmaz.

  3. WordPress bir başlık gönderir text/html;charset=utf-7.

  4. WordPress, kaçan verileri bekleyerek yorumu görüntüler. Ancak bu tarayıcı tarafından UTF-7 olarak değerlendirildiğinden JavaScript yürütülür.

Evet, bu bir güvenlik problemi.

UTF-7 tüm tarayıcılar tarafından desteklenmez, çoğu metin Windows-1252 (veya işletim sistemindeki varsayılan kodlama ne olursa olsun) veya UTF-8 olarak işleyecektir. Asıl sorun şu: kaçmak artık işe yaramayacak.


Sadece kodlama değerini geri değiştirmek bir çözüm değildir. Bunu düzenli ziyaretçi, bunu asla değiştiremezsin sahip kapıyı açık bulmak için.


Teşekkürler! Bu veritabanı girişini düzeltmenin güvenlik boşluğunu kapattığını parmaklarımdan geçeceğim.
Jennette

Endişelenme, güvenlik açıklarını kapatmak için zaten birkaç işlem yapmıştım. Nasıl girmeye başladıklarını anlayamıyordum. Son birkaç gündür hiçbir şey saldırıya uğramadı, bu yüzden umarım kodlamayı UTF-8 olarak değiştirmek tüm delikleri kapatmanın son adımı oldu.
Jennette

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.