ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
ÛãçèØÃÂ¥ Ã’ØàãáÞÃÂ’ - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
взлом<br />
WORDPRESS COMMENTS HTML SPAM VULNERABILITY<br />
Перед тобой первая неопубликованная уязвимость, которую я назвал<br />
«WordPress Comments Html Spam Vulnerability».<br />
Уязвимость затрагивает все версии движка, начиная от 1.5 и заканчивая<br />
последней (на момент написания статьи) 2.7.1.<br />
Заглянем в исходники вордпресса. Открывай файл ./wp-includes/<br />
comment.php и находи следующий код:<br />
function check_comment($author, $email, $url, $comment,<br />
$user_ip, $user_agent, $comment_type) {<br />
...<br />
if ( 'trackback' == $comment_type || 'pingback' ==<br />
$comment_type ) { // check if domain is in blogroll<br />
$uri = parse_url($url);<br />
$domain = $uri['host'];<br />
$uri = parse_url( get_option('home') );<br />
$home_domain = $uri['host'];<br />
if ( $wpdb->get_var($wpdb->prepare("SELECT<br />
link_id FROM $wpdb->links WHERE link_url LIKE (%s) LIMIT<br />
1", '%'.$domain.'%')) || $domain == $home_domain )<br />
return true;<br />
else<br />
return false;<br />
}<br />
...<br />
}<br />
}<br />
$str = mb_strcut( $str, 0, $count );<br />
// remove part of an entity at the end<br />
$str = preg_replace( '/&[^;\s]{0,6}$/’, '', $str );<br />
return $str;<br />
Казалось бы, передать ссылку здесь невозможно. Но нерадивые разработчики<br />
снова не учли несколько нюансов:<br />
1. strip_tags() успешно пропускает через себя теги вроде «» (то есть,<br />
содержащие пробелы);<br />
2. kses-фильтры успешно нормализуют html-теги, содержащие в себе<br />
эти самые пробелы.<br />
Исходя из этой информации, можно придумать конечный эксплойт:<br />
<br />
<br />
Òàéòë: <br />
URL:<br />
Comment:<br />
Êóïèòü ñëîíà< / a >< / b ><br />
В итоге, на нужном блоге мы получим зааппрувленный комментарий с<br />
выделенной жирной ссылкой «Купить слона». Единственное замечание:<br />
этот способ в SEO годен только для Yahoo, Яндекса, MSN, так как в коде<br />
ссылки добавляется rel=«nofollow», благодаря чему всемогущий Гугл ее<br />
не засчитывает.<br />
ПОДМЕНА RSS-ФИДОВ В DASHBOARD<br />
В конце прошлого года я нашел еще один занимательный баг в<br />
WordPress, который заключался в подмене RSS-лент на главной странице<br />
админки блога. Итак, в Dashboard содержатся следующие ленты новостей:<br />
новости плагинов, incoming links, новости devblog c wordpress.<br />
org и новости «Планеты WordPress». Начиная с версии 2.5, к каждому<br />
фиду прикреплена кнопочка «Edit», что позволяет администратору блога<br />
редактировать эти пресловутые фиды, заменяя их на любые свои. Но<br />
разработчики снова проморгали тот факт, что в функции редактирования<br />
фидов не существует никакой проверки прав (в который раз поражаюсь<br />
невнимательности девелоперов). Теперь смотри. Скопируй ленту<br />
новостей с девблога официального сайта вордпресса, затем вставь в<br />
нее в качестве первого поста объявление о security-патче (или просто<br />
новой версии) блога. В посте (естественно, в ссылке на скачку) укажи<br />
свой протрояненный дистрибутив вордпресса. Затем положи подготовленный<br />
фид на какой-нибудь сервер и используй этот html-код для<br />
подмены рсс-ленты девблога на свою:<br />
<br />
<br />