XSS, Redirector та FPD уразливості в WordPress
23:51 29.06.2012У лютому, 23.02.2012, я знайшов Cross-Site Scripting, Redirector та Full path disclosure уразливості в плагіні Akismet для WordPress. Він є core-плагіном (починаючи з версії WP 2.0), тому ці уразливості також стосуються самого WordPress. Це перша порція уразливостей в плагіні Akismet.
Раніше я вже писав про IAA, Redirector та XSS уразливості в WordPress.
XSS:
При GET запиті до скрипта http://site/wp-admin/edit.php ?page=akismet-admin&recheckqueue=1, або http://site/wp-admin/ edit-comments.php?page=akismet-admin&recheckqueue=1 або http://site/wp-admin/admin.php?action=akismet_recheck_queue (в залежності від версії, в WP 3.x використовується остання адреса).
З вказанням заголовка Referer. Це можна зробити через Flash або інші методи.
Referer: data:text/html;base64,PHNjcmlwdD5hbGVydChkb2N1bWVudC5jb29raWUpPC9zY3JpcHQ+
На веб серверах IIS редирект відбувається через заголовок Refresh, а на інших веб серверах - через заголовок Location.
Redirector (URL Redirector Abuse):
При GET запиті до скрипта http://site/wp-admin/edit.php ?page=akismet-admin&recheckqueue=1, або http://site/wp-admin/ edit-comments.php?page=akismet-admin&recheckqueue=1 або http://site/wp-admin/admin.php?action=akismet_recheck_queue (в залежності від версії, в WP 3.x використовується остання адреса).
З вказанням заголовка Referer. Це можна зробити через Flash або інші методи.
Referer: http://attackers_site
В WP <= 2.0.11 (Akismet <= 2.0.2) через помилку в плагіні не працюють XSS і Redirector атаки, але вони працють з більш новими версіями плагіна в різних версіях WordPress (до 3.4).
При цьому в останній версії Akismet 2.5.6 (що постачається з WP 3.4 та 3.4.1) ці дві уразливості вже виправлені (причому приховано, без жодного згадування в readme.txt плагіна чи в анонсах WP). Схоже, що це трапилося після моєї березневої чи квітневої публікації про XSS і Redirector уразливості через редиректори в WP.
Full path disclosure:
Через вищезгадану помилку в плагіні не працюють XSS і Redirector атаки, зате має місце FPD при запиті до скрипта (в старих версіях Akismet, таких як 2.0.2).
http://site/wp-admin/edit.php?page=akismet-admin&recheckqueue=1 або http://site/wp-admin/edit-comments.php?page=akismet-admin &recheckqueue=1 (в залежності від версії WP).
Full path disclosure:
Якщо попередня FPD має місце в акаунті, то дані FPD доступні без авторизації.
http://site/wp-content/plugins/akismet/admin.php
http://site/wp-content/plugins/akismet/akismet.php
http://site/wp-content/plugins/akismet/legacy.php
http://site/wp-content/plugins/akismet/widget.php
Це одні з багатьох FPD, що існують в останніх версіях WordPress. З часом я напишу про інші FPD в WP (що я знайшов у березні, коли дослідив усі FPD в зовнішньому функціоналі движка).
Уразливі Akismet 2.5.6 та попередні версії та WordPress 2.0 - 3.4.1.