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

WordPress 2.5 Güvenlik Açığı

Spy' Man
Spy' Man - ait Kullanıcı Resmi (Avatar)
Misafir
Mesajlar:
n/a
Konular:
14871
Teşekkür (Etti):
Teşekkür (Aldı):
Ticaret:
28-05-2011 14:14
#1
WordPress 2.5 Güvenlik Açığı
WordPress’in geçtiğimiz günlerde yayınlanan son sürümü 2.5 üzerinde bir güvenlik açığı tespit edildi. WordPress kurulu bir sistemde kullanıcı adını değiştirme yetkisine sahip olan bir kullanıcı bu güvenlik açığı ile diğer kullanıcıların cookie(çerez)’lerine erişim sağlayabiliyor.

Güvenlik açığı WordPress 2.5’in cookie doğrulama sisteminin olmamasından kaynaklanmakta. WordPress’te cookie yapıları şu şekilde belirlenmiş.

"wordpress_".COOKIEHASH = USERNAME . "|" . EXPIRY_TIME . "|" . MAC


Burada,

COOKIEHASH: Site URL’sinin MD5 hash’i
USERNAME: Kayıtlı kullanıcı ismi
EXPIRY_TIME: Saniye cinsinden oturumun sonlandırılma süresi
MAC: HMAC-MD5

Sisteme giriş yaptığınızda sayfa şunu oluşturur,

Set-Cookie: wordpress_52440d615a927011d57374216b3ff789=
admin%7C1209329209%7C7d5e9e67d8f74a2b657b2e63437a1 241; path=/blog/




Bu sırada wp_generate_auth_cookie() fonksiyonu cookie’yi şu şekilde oluşturur,

$key = wp_hash($user->user_login . $expiration);
$hash = hash_hmac(’md5’, $user->user_login . $expiration, $key);
$cookie = $user->user_login . ’|’ . $expiration . ’|’ . $hash;



wp_validate_auth_cookie() fonksiyonu ise,

list($username, $expiration, $hmac) = explode(’|’, $cookie);
.
.
$key = wp_hash($username . $expiration);
$hash = hash_hmac(’md5’, $username . $expiration, $key);

if ( $hmac != $hash )
return false;
$user = get_userdatabylogin($username);
.
.



Görüldüğü gibi bu fonksiyon kullanıcı adı, Mac ve zaman aşım süresini cookie’de ayrıştırmakta ve bunların hash’lerini alıp karşılaştırma yapmakta eğer değerler birbirini tutuyorsa giriş yapmanıza izin vermekte. Fakat HMAC kısmı için bir doğrulama yapmamakta.

Örnek Saldırı:
’admin0’ diye bir kullanıcı aldığımızı varsayalım ve daha sonra sisteme giriş yapalım. Onay kodu şöyle birşey olacaktır,


admin0|1209331305|HMAC_FUNCTION("admin01209331305" )



HMAC_FUNCTION içinde bir kontrol olmadığı için bir kullanıcı adımızı ’admin’ olarak değiştirdiğimizde ’admin’ kullanıcısının hesabına girmiş olacağız. Cookie şöyle görünecektir,


admin|1209331305|HMAC_FUNCTION("admin0|1209331305" )



Çözüm:
WordPress 2.5.1’e yükseltme yapınız. Ya da düzeltene kadar yeni kullanıcı kaydını kapatınız.
turqud - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2008
Yaş:
29
Mesajlar:
2.433
Konular:
606
Teşekkür (Etti):
183
Teşekkür (Aldı):
359
Ticaret:
(0) %
29-05-2011 06:51
#2
verildi ben vermisdim..

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler