एक भेद्यता का हाल ही में खुलासा किया गया है जो वर्डप्रेस 2.8.3 को प्रभावित करता है और व्यवस्थापक को पासवर्ड बदलकर व्यवस्थापक खाते को लॉक कर देता है।वर्डप्रेस भेद्यता को समझना
This post पूर्ण प्रकटीकरण पर दोष का विवरण है, और इसमें प्रासंगिक कोड स्निपेट शामिल हैं। पोस्ट में उल्लेख किया गया है कि 'आप पासवर्ड रीसेट फ़ंक्शन का दुरुपयोग कर सकते हैं, और पहले चरण को बाईपास कर सकते हैं और फिर $ कुंजी चर में सरणी सबमिट करके व्यवस्थापक पासवर्ड रीसेट कर सकते हैं।'
मुझे किसी और विवरण में बग को समझाते हुए PHP से परिचित किसी में दिलचस्पी होगी।
प्रभावित लोगों को update को एक नई 2.8.4 रिलीज के लिए होना चाहिए जो स्पष्ट रूप से दोष को ठीक करता है।
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 ]...
मेरे शब्द प्रेस इंस्टॉल को अपडेट करने के लिए मुझे गलती से चेतावनी देने के लिए धन्यवाद। :-) –