Крупная уязвимость в WordPress и Drupal может положить сайт. Уязвимость wordpress


Уязвимость во всех версиях WordPress

Уязвимость во всех версиях WordPressВ платформе WordPress CMS была обнаружена простая, но очень серьезная уязвимость, связанная с атаками типа «отказ в обслуживании» (DoS) на уровне приложений, которая позволяет любому пользователю приводить в нерабочее состояние большинство веб-сайтов WordPress даже с помощью одной машины. Происходит это без необходимости задействовать огромное количество компьютеров для переполнения полосы пропускания, как это требуют DDoS-атаки, но с достижением того же результата.Поскольку WordPress Foundation отказали в исправлении проблемы, уязвимость (CVE-2018-6389) остается без патча и затрагивает почти все версии WordPress, выпущенные за последние девять лет, включая последнюю стабильную (WordPress версия 4.9.2).

Подробнее тут, ниже про нее вкратце.

Barak Tawily, израильский исследователь в области безопасности, обнаружил уязвимость, суть которой заключается в том, что «load-scripts.php», встроенный скрипт в WordPress CMS, обрабатывает и пользовательские запросы.По задумке разработчиков, файл load-scripts.php предназначен только для администраторов и создан, чтобы помочь сайту повысить производительность и загрузить страницу быстрее, объединив (на сервере) несколько файлов JavaScript в один запрос.Однако, чтобы «load-scripts.php» работал на странице входа администратора (wp-login.php) до входа в систему, разработчики WordPress не предусматривают механизма аутентификации, в результате чего функция доступна для всех.В зависимости от плагинов и модулей, которые вы установили, файл load-scripts.php выборочно вызывает необходимые файлы JavaScript, передавая их имена в параметр «load», разделяемые запятой. При загрузке веб-сайта «load-scripts.php» пытается найти каждое имя JavaScript-файла, указанное в URL-адресе, добавить его содержимое в один файл и затем отправить в браузер пользователя. По словам исследователя, можно заставить load-scripts.php вызывать все возможные файлы JavaScript (всего 181 скрипт) за один проход, передавая их имена в указанном выше URL-адресе. Это сделает работу целевого сайта немного медленнее, потребовав высоких затрат со стороны процессора и памяти сервера.

Хотя одного запроса было бы недостаточно, чтобы «положить» весь сайт для всех посетителей, Tawily использовал сценарии на python для создания proof-of-concept (PoC). Созданный им doser.py делает большое количество одновременных запросов на один и тот же URL в попытке использовать как можно больше ресурсов CPU сервера и свести к минимуму доступные для других пользователей ресурсы.Hacker News проверила подлинность DoS-эксплойта, успешно «положив» один из демо-сайтов WordPress, работающих на VPS среднего размера.

Зная, что уязвимости DoS выходят за рамки bug bounty program для WordPress, Tawily ответственно сообщил об этой DoS-уязвимости команде WordPress через платформу HackerOne.Однако компания отказалась признать эту проблему, заявив, что такая ошибка находится вне контроля WordPress и «должна смягчаться на уровне сервера или на сетевом уровне, а не на уровне приложения».Уязвимость кажется серьезной, потому что около 29% сайтов в Интернете используют WordPress. Это делает миллионы сайтов уязвимыми для хакеров и потенциально недоступными для своих пользователей.

Для сайтов, которые не могут позволить себе услуги, предлагающие защиту от атак на уровне приложения, исследователь предоставил WordPress forked version, которая содержит патч этой уязвимости. Тем не менее, следует учитывать риски установки модифицированной CMS, даже если вы считаете источник надежным. Помимо этого, исследователь также выпустил простой bash-сценарий, который исправляет проблему в уже установленном WordPress.

WordPress forked versionbash-сценарий

 

www.nulled.cc

Уязвимость в WordPress позволяет любому отключить атакуемые сайты

В WordPress обнаружена простая, но серьезная уязвимость на уровне приложения, позволяющая вызвать отказ в обслуживании и отключить множество сайтов. Как правило, для осуществления подобной DDoS-атаки на уровне сети нужны большие объемы трафика, однако недавно обнаруженная уязвимость позволяет добиться желаемого эффекта с помощью всего лишь одного компьютера.

Производитель отказывается выпускать исправление, поэтому уязвимость (CVE-2018-6389) присутствует практически во всех версиях WordPress, выпущенных за последние девять лет, в том числе в последнем стабильном релизе 4.9.2. Проблема была обнаружена израильским исследователем безопасности Бараком Тауили (Barak Tawily) и связана с тем, как встроенный в систему скрипт load-scripts.php обрабатывает определяемые пользователем запросы.

С помощью файла load-scripts.php администраторы могут улучшать производительность сайтов и повышать скорость загрузки страниц путем объединения (на стороне сервера) нескольких JavaScript-файлов в один запрос. Однако для включения load-scripts.php на странице администратора (wp-login.php) авторизация не требуется, то есть, функция доступна каждому.

В зависимости от установленных плагинов и модулей файл load-scripts.php выборочно вызывает необходимые файлы JavaScript, передавая их имена в параметр «load» через запятую, например: https://your-wordpress-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery.

При загрузке сайта load-scripts.php (упомянутый в начале страницы) пытается найти имя каждого файла JavaScript, указанного в URL-адресе, добавить их содержимое в один файл и отправить обратно браузеру пользователя.

По словам Тауили, злоумышленник может заставить load-scripts.php вызвать все возможные файлы JavaScript (то есть, 181 скрипт), передав их имена в URL-адресе. Таким образом атакующий сможет существенно замедлить работу сайта. Тем не менее, одного запроса недостаточно для того, чтобы полностью «положить» сайт. Поэтому Тауили использовал PoC-скрипт doser.py, отправляющий большое количество одновременных запросов на один и тот же URL-адрес, пытаясь использовать как можно больше ресурсов процессоров серверов и тем самым снизить их производительность.

Источник: securitylab.ru

internetua.com

Крупная уязвимость в WordPress и Drupal может положить сайт / Хабр

image

Нир Гольдшлегер, исследователь безопасности из Salesforce.com, обнаружил XML-уязвимость в WordPress и Drupal, пишет Mashable. Уязвимость использует известную атаку XML Quadratic Blowup Attack — и при её выполнении может практически мгновенно положить весь сайт или сервер.

XML-уязвимость, обнаруженная Гольдшлегером, может привести к загрузке процессора и оперативной памяти на 100 %, что сделает сервер недоступным и создаст DoS-атаку на базу данных MySQL. Уязвимость присутствует в WordPress от 3.5 до 3.9 (текущая версия) и в Drupal от 6.x до 7.x (последняя версия). WordPress и Drupal уже выпустили патчи. XML Quadratic Blowup Attack похожа на атаку Billion Laughs, которая может позволить очень небольшому XML-документу полностью нарушить работу сервисов на машине в считанные секунды. Quadratic Blowup Attack вместо использования вложенных объектов внутри XML-документа просто повторяет одну большую запись с десятками тысяч символов снова и снова.

При этом типе атаки XML-документ размером несколько сотен килобайт может в конечном итоге занять сотни мегабайт или даже гигабайт памяти. Это легко положит весь сайт или веб-сервер. По словам Гольдшлегера:

<?xml version="1.0"?> <!DOCTYPE DoS [ <!ENTITY a "xxxxxxxxxxxxxxxxx..."> ]> <DoS>&x;&x;&x;&x;&x;&x;&x;&x;&x;...</DoS> </code>

«Если злоумышленник определяет длину сущности &x; в 55 тысяч символов и ссылается на эту сущность 55 тысяч раз внутри DoS-элемента, парсер сталкивается с нагрузкой атаки XML Quadratic Blowup чуть более 200 КБ в размере, которая расширяется до 2,5 ГБ при парсинге. Этого расширения будет достаточно, чтобы убить процесс парсинга».

В PHP по умолчанию стоит предел выделения памяти 128 Мб для каждого процесса, то есть теоретически вы не можете превысить предел 128 МБ XML-бомбой. Однако в веб-сервере Apache параметр «Max Clients» по умолчанию равняется 256, а в базе данных MySQL параметр «Max Connections» по умолчанию установлен на 151. Если мы умножим эти соединения друг против друга (128x151), получаем 19328 МБ — которые будут потреблять всю доступную память.

Чтобы успешно атаковать сервер, злоумышленник должен определить предел доступной памяти на сервере жертвы. Если атака превысит PHP-лимит, сервер отклонит превышение, что сделает атаку безуспешной. Однако успешная атака в результате вернёт введенную нагрузку и положит систему:

habr.com


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта