Lecture sur https://www.drupal.org/node/2357241 et les détails techniques sur https://www.drupal.org/SA-CORE-2014-005 , ainsi que le correctif actuel qui est simplement:
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
Je me demande quel genre de demande pourrait être faite qui utilise cet exploit?
database.inc
fichier ?database.inc
depuis le correctif ci-dessus (ou à la main, c'est évidemment un changement minime), mais je vous recommanderais également de patcher votre cœur de Drupal à fond dans son intégralité.Réponses:
La société qui a détecté le bogue a quelques exemples dans l' avis 01/2014: Vulnérabilité liée à l'injection Drupal - pre Auth SQL :
Extrait:
la source
The Problem occurs, if the array has keys, which are no integers
- ceci et l'exemple de requête sont assez utiles pour comprendre cela.Quoi de neuf avec 7.32 En vérifiant le module de test. Vous pouvez voir que le test suivant a été ajouté à 7.32;
Cela devrait vous aider à mieux concevoir une attaque.
Preuve de concept Depuis plus de suffisamment de temps a passé et il y a beaucoup de PoC dans la nature.
Poc # 1 - PHP
Poc # 2 Python - http://pastebin.com/nDwLFV3v
Voici un blog qui fait bonne figure: http://www.volexity.com/blog/?p=83
la source
Les chercheurs qui ont trouvé le bug ont une preuve de concept. D'autres ont également développé des preuves de concept. Cependant, ils ne les publient pas à dessein pour tenter de réduire la probabilité qu’il soit largement exploité. Nous devrions respecter cette recherche et cette retenue et ne pas publier d’exemples ici.
Après un certain temps et la mise à niveau des sites, il sera très intéressant, d’un point de vue universitaire, de revoir le code d’attaque par preuve de concept. Jusque-là, il s'agit d'un risque inutile et d'attirer l'attention.
Le code de l’avis SektioinEins ne constitue pas un exemple complet de la façon de l’exploiter. Ils détaillent la faiblesse, mais n'identifient pas précisément comment exploiter réellement le problème.
Cela fait maintenant quelques semaines que le numéro a été publié et SektionEins a publié plusieurs preuves de concept sur son blog . Celles-ci sont assez intéressantes comparées à beaucoup d'autres preuves de concept développées car elles ne laissent que très peu de traces de leur activité (par exemple, rien dans la table menu_router).
la source
Je peux confirmer que cette vulnérabilité fonctionnera avec tous les sites Drupal 7.31 et inférieurs, quels que soient les modules actifs. Chaque formulaire drupal pourrait être utilisé pour exploiter cette vulnérabilité.
L'exploitation est assez simple, donc le PoC est déjà dans la nature. J'ai été en mesure d'attaquer son propre serveur et de modifier les mots de passe des utilisateurs en tant qu'utilisateur anonyme lors d'une nouvelle installation de Drupal, mais les possibilités sont infinies.
Ce bogue était connu il y a presque 1 an via https://www.drupal.org/node/2146839 mais personne de l'équipe de sécurité Drupal Core n'a répondu.
la source
#
devant "la sécurité" empêchait quelqu'un de voir ce qui se passerait autrement, ou peut-être qu'il y a trop de problèmes dans la file d'attente. Encore surprenant que personne n’y ait répondu.Je me demandais comment cela pourrait être exploité et combien de temps et d'efforts cela prendrait? Par conséquent, j'ai décidé d'installer l'ancienne version de Drupal 7 sur mon hôte local et de procéder à l'ingénierie inverse de ce bogue. Ce que j’ai découvert, c’est un bug choquant qui donne à toute personne disposant des connaissances de base en HTML / SQL un accès complet à votre site Drupal.
J'ai réussi à exécuter l'injection SQL dans Drupal 7 en utilisant un utilisateur anonyme en moins de 30 minutes d'essayer!
http://www.zoubi.me/blog/drupageddon-sa-core-2014-005-drupal-7-sql-injection-exploit-demo
REMARQUE: cela ne vous permet toujours pas de vous connecter car Drupal utilise SHA512 avec du sel, il est donc impossible de se connecter. Intentionnellement, je n'ai pas mis le code ici, mais évidemment, toute personne possédant un minimum de connaissances Drupal saura comment résoudre ce problème et construire la requête qui vous donnera un accès complet!
Cela ouvre une question sur le degré de sécurité de Drupal et des responsables de ce type de problème. Apparemment, ce bug était connu depuis plus d'un an ( https://www.drupal.org/node/2146839 ), mais personne n'a réagi sur Drupal.org. Accidentellement ou intentionnellement? :)
la source
Il s'agit d'un correctif d'une vulnérabilité d'injection SQL dans laquelle des instructions SQL malveillantes sont insérées dans un champ de saisie pour exécution et pourraient par exemple conduire à la publication du contenu de la base de données. Ce correctif est important à appliquer dès que possible, notamment parce que cette vulnérabilité peut être exploitée par des utilisateurs anonymes.
Si vous ne pouvez pas mettre à jour immédiatement l’équipe de sécurité, vous pouvez appliquer ce correctif qui fournira la même protection jusqu’à ce que vous puissiez effectuer la mise à niveau complète 1 . En outre, l’équipe de sécurité a préparé des FAQ concernant ce problème. Mettre votre site en mode maintenance ne vous aidera pas . Veuillez vider le cache après avoir appliqué la mise à jour ou assurez-vous que vous utilisez la version 7.32.
En outre, vous devriez vérifier si votre site n'a pas été compromis. Certains sites signalent déjà des problèmes. Voici un article de blog qui suggère comment vérifier que la mise à jour de Drupal 7.32 ne suffit pas, votre site est peut-être déjà piraté.
J'applique le correctif le 15 octobre et mes sites ont déjà signalé qu'une personne essayait d'exploiter cette vulnérabilité.
la source