Nous sommes le 2 Mars 2018, et à ce jour aucune solution n’a été apportée par les développeurs du CMS pour corriger la faille pourtant béante  permettant à un attaquant de mettre en place une attaque par déni de service sur les versions 4.9.4 & antérieures.

75 millions de sites sont pourtant propulsés par WordPress, certains sont même des poids lourds dans le domaine des blogs.

Voici une partie du rapport de wpscan, outil proposé par @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, et @_FireFart_ :

[!] Title: WordPress <= 4.9.4 - Application Denial of Service (DoS) (unpatched)
    Reference: https://wpvulndb.com/vulnerabilities/9021
    Reference: https://baraktawily.blogspot.fr/2018/02/how-to-dos-29-of-world-wide-websites.html
    Reference: https://github.com/quitten/doser.py
    Reference: https://thehackernews.com/2018/02/wordpress-dos-exploit.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6389

Et en effet, quand on cherche un peu on s’aperçoit que la faille découverte par , chercheur en cybersécurité Israélien, concerne le fichier .

Ce fichier sert essentiellement aux utilisateurs authentifiés admins en agréant plusieurs fichiers JavaScript en une seule requête. Il semble que l’impact sur les performances soit non négligeable.

Le soucis c’est que ce fichier est accessible à n’importe qui, aucune authentification n’est nécessaire à son exécution.

Vous pouvez essayer de l’exécuter en lui passant quelques paramètres comme suivant :

ttps://adress.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery

Augmentez le nombre de fichiers passés en paramètre avec un grand nombre de requêtes par seconde, et vous avez mis en place une attaque par déni de service.

 

Les devs du projet WordPress ne semblent pas vouloir réagir, mais il existe une solution éditée par le chercheur pour se débarrasser du problème à l’aide du script suivant, à placer  et exécuter à la racine du WordPress :

#! /bin/bash

if [[ -f wp-login.php && -f wp-admin/load-scripts.php && -f wp-admin/includes/noop.php ]]
then
        sed -i "1 s/^.*$/<?php\ndefine('CONCATENATE_SCRIPTS', false);/" wp-login.php
        sed -i -e "s/^require( ABSPATH . WPINC . '\/script-loader.php' );$/require( ABSPATH . 'wp-admin\/admin.php' );/g" wp-admin/load-scripts.php
        sed -i -e "s/^require( ABSPATH . WPINC . '\/script-loader.php' );$/require( ABSPATH . 'wp-admin\/admin.php' );/g" wp-admin/load-styles.php
        echo """<?php
/**
* Noop functions for load-scripts.php and load-styles.php.
*
* @package WordPress
* @subpackage Administration
* @since 4.4.0
*/
function get_file( \$path ) {
        if ( function_exists('realpath') ) {
                \$path = realpath( \$path );
        }
        if ( ! \$path || ! @is_file( \$path ) ) {
                return '';
        }
        return @file_get_contents( \$path );    
}""" > wp-admin/includes/noop.php
		echo 'Successfuly patched.'
else
        echo 'Please run this file from WordPress root directory.'
fi

Source : https://github.com/Quitten/WordPress/blob/master/wp-dos-patch.sh


Laisser un commentaire