Читайте https://www.drupal.org/node/2357241 и технические подробности на https://www.drupal.org/SA-CORE-2014-005 , а также актуальный патч, который просто:
diff --git a/includes/database/database.inc b/includes/database/database.inc
index f78098b..01b6385 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -736,7 +736,7 @@ abstract class DatabaseConnection extends PDO {
// to expand it out into a comma-delimited set of placeholders.
foreach (array_filter($args, 'is_array') as $key => $data) {
$new_keys = array();
- foreach ($data as $i => $value) {
+ foreach (array_values($data) as $i => $value) {
// This assumes that there are no other placeholders that use the same
// name. For example, if the array placeholder is defined as :example
// and there is already an :example_2 placeholder, this will generate
Мне интересно, какой запрос может быть сделан с использованием этого эксплойта?
database.inc
файл ?database.inc
установить патч из патча выше (или вручную, очевидно, это небольшое изменение), но я бы также порекомендовал полностью обновить ваш основной Drupal.Ответы:
У компании, обнаружившей ошибку, есть несколько примеров на Advisory 01/2014: Уязвимость Drupal - pre Auth SQL Injection :
Выдержка:
источник
The Problem occurs, if the array has keys, which are no integers
- этот и пример запроса довольно полезны для понимания этого.Что происходит с 7.32 Проверяя модуль тестирования. Вы можете видеть, что следующий тест был добавлен к 7.32;
Это должно дать некоторое дополнительное представление о том, как создать атаку.
Подтверждение концепции Так как прошло более чем достаточно времени, и в дикой природе полно PoC.
Poc # 1 - PHP
Poc # 2 Python - http://pastebin.com/nDwLFV3v
Вот блог, который делает хороший разбивку: http://www.volexity.com/blog/?p=83
источник
Исследователи, которые нашли ошибку, имеют доказательство концепции. Другие разработали доказательства концепции также. Тем не менее, они намеренно не публикуют их, чтобы попытаться уменьшить вероятность того, что они будут широко использованы. Мы должны уважать это исследование и сдержанность, а не размещать здесь примеры.
По прошествии некоторого времени и модернизации сайтов будет очень интересно с академической точки зрения проанализировать проверочный код атаки. До тех пор это ненужный риск и хватит внимания.
Код в рекомендации SektioinEins не является полностью разработанным примером того, как его использовать. Они описывают слабость, но не точно определяют, как на самом деле использовать проблему.
Прошло уже несколько недель с тех пор, как проблема была выпущена, и SektionEins разместил несколько проверочных концепций в своем блоге . Они довольно интересны по сравнению со многими другими концептуальными доказательствами, которые были разработаны, поскольку они оставляют очень мало следов своей активности (например, ничего в таблице menu_router).
источник
Я могу подтвердить, что эта уязвимость будет работать с каждым сайтом Drupal 7.31 и ниже, независимо от того, какие модули активны. Любая друпальная форма может быть использована для использования этой уязвимости.
Эксплойт довольно прост, поэтому PoC уже в дикой природе. Я смог атаковать собственный сервер и изменить пароли пользователя как анонимный пользователь в чистой установке Drupal, но возможности безграничны.
Эта ошибка была известна почти 1 год назад через https://www.drupal.org/node/2146839, но никто из Drupal Core Security Team не ответил.
источник
#
перед «безопасностью» кто-то ограничил возможность увидеть, что в противном случае было бы, или, возможно, в очереди слишком много проблем. Все еще удивительно, что никто не ответил на это.Я задавался вопросом, как это можно использовать и сколько времени и усилий это займет? Поэтому я решил установить более старую версию Drupal 7 на мой локальный хост и перепроектировать эту ошибку. Я обнаружил шокирующую ошибку, которая дает всем, кто обладает базовыми знаниями о HTML / SQL, полный доступ к вашему сайту Drupal.
Мне удалось выполнить SQL-инъекцию в Drupal 7 с помощью анонимного пользователя менее чем за 30 минут!
http://www.zoubi.me/blog/drupageddon-sa-core-2014-005-drupal-7-sql-injection-exploit-demo
ПРИМЕЧАНИЕ: Это по-прежнему не позволит вам войти, так как Drupal использует SHA512 с солью, поэтому на самом деле невозможно войти в систему. Я специально не ставил здесь код, но, очевидно, любой, у кого есть немного знаний о Drupal, знает, как это преодолеть, и создаст запрос, который даст вам полный доступ!
Это открывает вопрос о том, насколько безопасен Drupal и кто отвечает за что-то подобное? Очевидно, эта ошибка была известна более года ( https://www.drupal.org/node/2146839 ), но никто не реагировал на Drupal.org. Случайно или намеренно? :)
источник
Это исправление уязвимости внедрения SQL, когда вредоносные операторы SQL вставляются в поле ввода для выполнения, что может привести, например, к освобождению содержимого базы данных. Это исправление важно применять как можно скорее, особенно потому, что эта уязвимость может быть использована анонимными пользователями.
Если вы не можете обновить немедленно, у команды безопасности вы можете применить этот патч, который будет обеспечивать такую же защиту, пока вы не сможете выполнить полное обновление 1 . Также команда безопасности подготовила некоторые часто задаваемые вопросы, связанные с этой проблемой. Перевод сайта в режим обслуживания не поможет, и, пожалуйста, очистите кэш после установки обновления или убедитесь, что вы используете 7.32.
Кроме того, вы должны проверить, если ваш сайт не был взломан. Некоторые сайты уже сообщают о проблемах. Здесь есть одно сообщение в блоге, в котором предлагается, как проверить, что обновления до Drupal 7.32 недостаточно, возможно, ваш сайт уже взломан.
Я применяю исправление 15 октября, и мои сайты уже сообщили о том, что кто-то пытается использовать уязвимость
источник