Sicherheitslücke in WordPress Plugin (Slider Revolution)

Erneut tauchte eine Sicherheitslücke in einem weit verbreitetem und allseits beliebtem WordPress Plugin auf. Bei dem betroffenen Plugin handelt es sich um den „Revolution Slider“.

Durch diese, eigentlich 2, Sicherheitslücken wurde es möglich einerseits eine Malware, names SoakSoak, zu installieren und andererseits konnte man sich, über Manipulation eines Linkes, die wp-config beschaffen und hatte somit auch die Datenbankzugriffsdaten.

Wie ist das möglich?

Mit Hilfe des Aufrufes von http://yourdomain.com/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php und einer Funktion im Kern des Plugins, genauer gesagt in der image_view.class.php.

Wer ist betroffen?

Jeder der das Plugin Slider Revolution mit einer Version kleiner 4.6 benutzt.

Was kann ich tun?

Am sichersten ist natürlich ein Update auf 4.6, da dies beide Sicherheitslücken schließt.

Mit Hilfe von folgender Änderung kann man aber das downloaden der wp-config, oder sonstiger Datein, verhindern.

Man öffnet zuerst die Datei image_view.class.php, welche unter 
wp-content/plugins/revslider/inc_php/, zu finden ist.

Zu editieren ist die Funktion „showImageFromGet“:

      public function showImageFromGet(){


      //$imageFilename = UniteFunctionsRev::getGetVar("img");
      $imageID = intval(UniteFunctionsRev::getGetVar("img"));


      $maxWidth = UniteFunctionsRev::getGetVar("w",-1);
      $maxHeight = UniteFunctionsRev::getGetVar("h",-1);
      $type = UniteFunctionsRev::getGetVar("t","");


      //set effect

      $effect = UniteFunctionsRev::getGetVar("e");
      $effectArgument1 = UniteFunctionsRev::getGetVar("ea1");


      if(!empty($effect))
      $this->setEffect($effect,$effectArgument1);


      $this->showImageByID($imageID);
      //$this->showImage($imageFilename,$maxWidth,$maxHeight,$type);

      }

Und zuletzt fügt man folgende neue Funktion hinzu:

      private function showImageByID($fileID, $maxWidth=-1, $maxHeight=-1, $type=""){

      $fileID = intval($fileID);
      if($fileID == 0) $this->throwError("image not found");

      $img = wp_get_attachment_image_src( $fileID, 'thumb' );
      if(empty($img)) $this->throwError("image not found");

      $this->outputImage($img[0]);
      exit();

      }


      Gar nicht cool oder?
Von | 2019-08-26T14:47:12+00:00 26.01.2015|Tags: , , , , |

Hinterlassen Sie einen Kommentar