WPS Limit Login est édité par WP Serveur, hébergeur WordPress français. L’indice de criticité de cette mise à jour est élevé.
Disclose
Fichier : /classes/plugin.php
Ligne 1070 : $files = esc_attr( $_POST['files'] );
Problème : Aucun contrôle n’est fait pour savoir si les ID envoyés sont bel et bien les ID de médias non attachés. On peut tout à fait ajouter des ID pour obtenir n’importe quel autre media (privé ?).
CSRF #1
Fichier : /classes/plugin.php
Fonction : create_zip_archive_medias()
Problème : Aucun contrôle de jeton de sécurité, un simple abonné connecté à son compte peut lancer cette fonction.
CSRF #2
Fichier : /classes/plugin.php
Fonction : delete_zip_archive_medias()
Problème : Aucun contrôle de jeton de sécurité, un simple abonné connecté à son compte peut lancer cette fonction.
CSRF #3
Fichier : /classes/plugin.php
Fonction : delete_zip_archive_medias()
Problème : le nom de fichier n’est pas vérifié ni sanitizé.
Démo : Un formulaire envoyé en POST avec les valeurs suivantes :
- action=delete_zip_archive_medias
- zip=https://example.com/wp-config.php
Cela supprime tout simplement ce fichier, aucun contrôle du fichier à supprimer s’il est bien un zip créé par le plugin.
CSRF #4
Fichier : /classes/plugin.php
Fonction : create_zip_archive_files()
Problème : Aucun contrôle de jeton de sécurité, un simple abonné connecté à son compte peut lancer cette fonction.
CSRF #5
Fichier : /classes/plugin.php
Fonction : delete_zip_archive_files()
Problème : le nom de fichier n’est pas vérifié ni sanitizé.
Démo : Un formulaire envoyé en POST avec les valeurs suivantes :
- action=delete_zip_archive_files
- zip=https://example.com/wp-config.php
Cela supprime tout simplement ce fichier, aucun contrôle du fichier à supprimer s’il est bien un zip créé par le plugin.
CSRF #6
Fichier : /classes/plugin.php
Ligne : 1223
Problème : Manque un jeton de sécurité, ici je peux donner le lien suivant à un admin ou l’inclure dans une page masquée et il se déclenchera :
https://example.com/wp-admin/admin-ajax.php?action=wpscleaner_rated
CSRF #7
Fichier : /classes/plugin.php
Ligne : 1346
Problème : Manque un jeton de sécurité, ici je peux donner le lien suivant à un admin ou l’inclure dans une page masquée et il se déclenchera :
https://example.com/wp-admin/admin-ajax.php?action=delete_alert
Ces failles ont été corrigées dans la v1.4.5