black hattitude hacks en plein concours

le concours black hattitude vient tout juste de commencer que déjà, deux participants ont eu la joie de se faire hacker leurs sites.
Pour un concours « no rulez », il fallait s’y attendre ^^. Pour ma part, je suis étonné que ce genre de chose n’ait pas déjà pris plus d’ampleur, mais en fait, s’adonner à du hack serait à mon avis, plus judicieux vers la fin du concours black hattitude. Pour en revenir au hack, pas mal de concurrents on pris le parti d’utiliser des CMS genre wordpress, le genre de logiciel particulièremen. prompt à être faillible : puisque c’est un soft populaire, les piratez en font une cible de choix pour essayer de trouver des faiblesses dans le soft lui-même où les plug-in.

Il y a peu de tempss, c’etait wordpress 2.8.3 qui faisait la une des blogs pour sa faille « reset password » :

Dans sa version 2.8.3, la page wp-login.php contenait cette fonction :

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'));
// Generate something random for a password...
$new_pass = wp_generate_password();
do_action('password_reset', $user, $new_pass);
wp_set_password($new_pass, $user->ID);
update_usermeta($user->ID, 'default_password_nag', true);
$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
$message .= sprintf(__('Password: %s'), $new_pass) . "\r\n";
$message .= site_url('wp-login.php', 'login') . "\r\n";
$title = sprintf(__('[%s] Your new password'), get_option('blogname'));
$title = apply_filters('password_reset_title', $title);
$message = apply_filters('password_reset_message', $message, $new_pass);
if ( $message && !wp_mail($user->user_email, $title, $message) )
die('

' . __('The e-mail could not be sent.') . "
\n" . __('Possible reason:
your host may have disabled the mail() function...') . '

');
wp_password_change_notification($user);
return true;
}

il suffisait de commenter l’intégralité de la fonction excepté le « return »
et de chercher ce passage là

case 'rp' :
$errors = reset_password($_GET['key']);
if ( ! is_wp_error($errors) ) {
wp_redirect('wp-login.php?checkemail=checkemail');
exit();
}

de commenter l’appel de fonction wp_redirect et d’afficher un joli message pour le visiteur indélicat du style


case 'rp' :
$errors = reset_password($_GET['key']);
if ( ! is_wp_error($errors) ) {
/*wp_redirect('wp-login.php?checkemail=checkemail');*/
echo(Belle tentative de black hattitude ^^ essaye encore');
exit();
}

Mots-clefs :

4 commentaires sur “black hattitude hacks en plein concours”

  1. papicotnela dit :

    well, your blog is amazening too. Thanks :*

  2. papicotonela dit :

    you love me? how????? and you?!?!

  3. Oes Tsetnoc dit :

    Nice post, i will try to my blog :)

  4. papicotonela dit :

    that’s imposible…. you can’t love me… you don’t know me, and i am ugly

Laisser une réponse