Yazan
ahmet
Yeni Üye
02 Eylül 2009 Çarşamba 13:51:22
Dün yeni bir Wordpress Güvenlik Açığı ortaya çıkartıldı. Dünden beri bu açık hakkında bilgi topluyorum. Kenan Barış ÇELİK arkadaşımda sağolsun bir uyarı göndermiş. Kod benim sistemimde aldığım güvenlik önlemleri sayesinde çalışmıyor. Öncelikle bunu belirtmek isterim.

Milw0rm internet sayfasında yer alan güvenlik açığında ;

Admin kullanıcısı için bir şifremi unuttum yapılmakta. Hemen ardından

http://örnekdomainadresi.com/wordpress/wp-login.php?action=rp&key=o7naCKN3OoeU2KJMMsag

Bağlantı adresi tıklanıyor ve yeni şifreleri giriyorsunuz. Şimdi “hadi be oradan e-maile gelen linki tıklamadan yeni şifreyi alamazsın” diyenleri duyar gibiyim. Exploit için şöyle bir anlatım yapılmış.

Wp-login.php içerisinde yer alan aşağıdaki kod üzerinde bir by-pass yapılarak bazı onay ve kontroller devre dışı bırakılabilmekte. Yani kısacası aşağıdaki kodları bypass ederek yeni şifre elde edilebilmekte.

wp-login.php:
...[snip]....
line 186:
function reset_password($key) {
global $wpdb;
$key = preg_replace('/[^a-z0-9]/i', '', $key);
if ( empty( $key ) )
return new WP_Error('invalid_key', __('Invalid key'));
$user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_activation_key = %s", $key));
if ( empty( $user ) )
return new WP_Error('invalid_key', __('Invalid key'));
...[snip]....
line 276:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
$errors = new WP_Error();
if ( isset($_GET['key']) )
$action = 'resetpass';
// validate action so as to default to the login screen
if ( !in_array($action, array('logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login')) && false === has_filter('login_form_' . $action) )
$action = 'login';

...[snip]....
line 370:
break;
case 'resetpass' :
case 'rp' :
$errors = reset_password($_GET['key']);
if ( ! is_wp_error($errors) ) {
wp_redirect('wp-login.php?checkemail=newpass');
exit();
}
wp_redirect('wp-login.php?action=lostpassword&error=invalidkey');
exit();
break;
...[snip ]...

Düzeltme: Bu güvenlik açığı için Ahmet Alp Bakan arkadaşım şu bağlantı adresindeki düzeltmeyi
yapmamızı önerdi.

Sonuç;

Wordpress 2.8.3 sürümü bu güvenlik açığı için yeni bir sürüm çıkana kadar en azından wp-admin klasörüne erişim için bir .htaccess şifreleme yapınız. Eğer hiçbirşey bilmiyorsanız muhakkak ki bilen birilerine wp-admin için extra bir şifreleme eklettiriniz. Yada blogunuzu yeni sürüme kadar wp-login ve wp-admin klasörlerinizi devre dışı bırakınız. Lütfen sisteminizden admin hesabını kaldırınız. Başka bir hesap üzerinden sistemi yönetiniz..!

Cevap yazmak için üye olmalısınız!
Hemen üye olmak için burayı tıklayınız..
 
 
Sayfalar:  1