Lesen Sie https://www.drupal.org/node/2357241 und die technischen Details unter https://www.drupal.org/SA-CORE-2014-005 sowie den aktuellen Patch, der einfach ist:
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
Ich frage mich, welche Art von Anfrage gemacht werden könnte, die diesen Exploit nutzt.
database.inc
Datei ?database.inc
vom obigen Patch aus patchen (oder von Hand, das ist natürlich eine winzige Änderung), aber ich würde auch empfehlen, Ihren Kern-Drupal vollständig zu patchen.Antworten:
Das Unternehmen, das den Fehler gefunden hat, hat einige Beispiele zu Advisory 01/2014: Sicherheitsanfälligkeit in Drupal vor Auth SQL Injection :
Extrakt:
quelle
The Problem occurs, if the array has keys, which are no integers
- Dies und die Beispielabfrage sind ziemlich hilfreich, um dies zu verstehen.Was ist los mit 7.32 Durch Überprüfen des Testmoduls. Sie können sehen, dass der folgende Test zu 7.32 hinzugefügt wurde;
Dies sollte einen weiteren Einblick in die Vorgehensweise beim Herstellen eines Angriffs geben.
Proof of Concept Da mehr als genug Zeit vergangen ist und es viele PoCs in freier Wildbahn gibt.
Poc # 1 - PHP
Poc # 2 Python - http://pastebin.com/nDwLFV3v
Hier ist ein Blog, das eine gute Übersicht bietet: http://www.volexity.com/blog/?p=83
quelle
Die Forscher, die den Fehler gefunden haben, haben einen Proof of Concept. Andere haben ebenfalls Proofs of Concept entwickelt. Sie veröffentlichen sie jedoch absichtlich nicht, um zu versuchen, die Wahrscheinlichkeit zu verringern, dass sie in großem Umfang ausgenutzt werden. Wir sollten diese Forschung und Zurückhaltung respektieren und hier keine Beispiele posten.
Nachdem einige Zeit vergangen ist und Websites aktualisiert wurden, wird es aus akademischer Sicht sehr interessant sein, den Proof-of-Concept-Angriffscode zu überprüfen. Bis dahin ist es ein unnötiges Risiko und Aufmerksamkeit zu erregen.
Der Code in der SektioinEins-Empfehlung ist kein vollständig ausgearbeitetes Beispiel für die Verwendung. Sie beschreiben die Schwachstelle, identifizieren jedoch nicht genau, wie das Problem tatsächlich ausgenutzt werden kann.
Es ist nun ein paar Wochen her, dass die Ausgabe veröffentlicht wurde und SektionEins hat mehrere Proof-of-Concepts auf ihrem Blog veröffentlicht . Diese sind im Vergleich zu vielen anderen entwickelten Proofs of Concept sehr interessant, da sie nur sehr wenige Spuren ihrer Aktivität hinterlassen (z. B. nichts in der menu_router-Tabelle).
quelle
Ich kann bestätigen, dass diese Sicherheitslücke mit jeder Drupal 7.31 und niedrigeren Site funktioniert, egal welche Module aktiv sind. Jedes Drupal-Formular kann verwendet werden, um diese Sicherheitsanfälligkeit auszunutzen.
Exploit ist ganz einfach, so ist PoC bereits in der Wildnis. Ich konnte meinen eigenen Server angreifen und Benutzerpasswörter als anonymer Benutzer in einer sauberen Drupal-Installation ändern, aber die Möglichkeiten sind endlos.
Dieser Fehler war vor fast einem Jahr über https://www.drupal.org/node/2146839 bekannt, aber niemand vom Drupal Core Security Team hat geantwortet.
quelle
#
"Sicherheit" jemanden davon abgehalten, das zu sehen, was sonst der Fall wäre, oder vielleicht sind einfach zu viele Probleme in der Warteschlange. Immer noch überraschend, dass niemand darauf reagiert hat.Ich fragte mich, wie dies ausgenutzt werden könnte und wie viel Zeit und Mühe es kosten würde. Aus diesem Grund habe ich mich entschlossen, eine ältere Drupal 7-Version auf meinem Localhost zu installieren und diesen Fehler rückzuentwickeln. Was ich entdeckte, war ein schockierender Fehler, der jedem mit Grundkenntnissen in HTML / SQL einen vollständigen Zugriff auf Ihre Drupal-Site ermöglicht.
Ich habe es geschafft, SQL-Injection in Drupal 7 unter Verwendung eines anonymen Benutzers in weniger als 30 Minuten auszuführen!
http://www.zoubi.me/blog/drupageddon-sa-core-2014-005-drupal-7-sql-injection-exploit-demo
HINWEIS: Hiermit können Sie sich immer noch nicht anmelden, da Drupal SHA512 mit Salt verwendet und sich daher nicht anmelden kann. Ich habe den Code absichtlich nicht hier eingefügt, aber offensichtlich weiß jeder mit ein wenig Drupal-Wissen, wie man dies überwindet und die Abfrage erstellt, die Ihnen vollen Zugriff gewährt!
Dies wirft die Frage auf, wie sicher Drupal ist und wer für so etwas verantwortlich ist. Anscheinend war dieser Fehler mehr als ein Jahr lang bekannt ( https://www.drupal.org/node/2146839 ), aber niemand reagierte auf Drupal.org. Versehentlich oder absichtlich? :)
quelle
Es handelt sich um eine Korrektur einer SQL-Injection-Sicherheitsanfälligkeit, bei der böswillige SQL-Anweisungen zur Ausführung in ein Eingabefeld eingefügt werden und beispielsweise zur Freigabe des Datenbankinhalts führen können. Es ist wichtig, diesen Fix so schnell wie möglich anzuwenden, insbesondere weil diese Sicherheitsanfälligkeit von anonymen Benutzern ausgenutzt werden kann.
Wenn Sie das Sicherheitsteam nicht sofort aktualisieren können, können Sie diesen Patch anwenden , der den gleichen Schutz bietet, bis Sie das vollständige Upgrade 1 durchführen können . Auch hat das Sicherheitsteam etwas vorbereitet FAQ zu diesem Problem. Ihre Website in den Wartungsmodus versetzt wird nicht helfen , und bitte den Cache nach dem Anwenden des Updates deaktivieren oder stellen Sie sicher , Sie verwenden 7.32.
Sie sollten auch überprüfen, ob Ihre Site nicht gefährdet wurde. Auf einigen Websites werden bereits Probleme gemeldet. Hier ist ein Blog-Beitrag, der vorschlägt, wie Sie überprüfen können, ob die Aktualisierung auf Drupal 7.32 nicht ausreicht. Möglicherweise ist Ihre Website bereits gehackt
Ich wende das Update am 15. Oktober an und meine Websites haben bereits gemeldet, dass jemand versucht, die Sicherheitsanfälligkeit auszunutzen
quelle