Le 15 juin 2020, notre équipe Threat Intelligence a été informée d’un certain nombre de vulnérabilités de contrôle d’accès qui avaient récemment été révélées dans KingComposer, un plugin WordPress installé sur plus de 100000 sites. Au cours de notre enquête sur ces vulnérabilités, nous avons découvert une vulnérabilité reflétée non corrigée de Cross-Site Scripting (XSS).

Les clients de Wordfence Premium ont reçu une nouvelle règle de pare-feu le même jour, protégeant contre les vulnérabilités de contrôle d’accès nouvellement corrigées ainsi que la vulnérabilité de patch intersite non corrigée. Les utilisateurs de Wordfence utilisant toujours la version gratuite recevront cette règle après 30 jours, le 15 juillet 2020.

Nous avons tenté de contacter les développeurs du plugin le lendemain, le 16 juin 2020. Comme nous n’avons pas reçu de réponse après 9 jours, nous avons contacté l’équipe des plugins WordPress le 25 juin 2020. L’équipe des plugins WordPress a répondu le lendemain et a laissé nous savons qu’ils étaient en contact avec les développeurs du plugin KingComposer, et un patch a été publié le 29 juin 2020.

Qu’est-ce que le script intersite réfléchi (XSS)?

Nous avons écrit un certain nombre d’articles sur les vulnérabilités Stored Cross-Site Scripting (XSS) dans le passé, et comment ils peuvent être utilisés pour reprendre un site Web si un administrateur accède à une page de leur site contenant un JavaScript malveillant. Nous avons également écrit sur les attaques CSRF (Cross-Site Request Forgery), où un attaquant peut amener une victime à cliquer sur un lien spécialement conçu pour apporter des modifications à un site.

Les vulnérabilités XSS reflétées ont les caractéristiques de ces deux vulnérabilités. Tout comme une attaque CSRF, l’exploitation d’une vulnérabilité Reflected XSS repose généralement sur un attaquant incitant sa victime à cliquer sur un lien malveillant qui envoie la victime vers le site vulnérable avec une charge utile malveillante. Cela peut être fait de plusieurs façons, mais il est courant de créer un lien vers un site intermédiaire contrôlé par l’attaquant, qui envoie ensuite une demande contenant une charge utile malveillante au site vulnérable au nom de la victime.

Une distinction notable entre les vulnérabilités XSS stockées les plus courantes et les vulnérabilités XSS reflétées telles que celle-ci est que les scripts malveillants utilisés dans le cadre de l’exploit ne sont en fait stockés nulle part dans la base de données avec des vulnérabilités XSS reflétées. Au contraire, les scripts malveillants sont reflétés et exécutés une seule fois pendant l’exploit.

Comme pour les attaques Stored XSS, la charge utile malveillante sera exécutée dans le navigateur de la victime. Cependant, avec XSS reflété, le site vulnérable produirait immédiatement (refléterait) la charge utile JavaScript malveillante, qui serait exécutée une seule fois dans le navigateur de la victime au lieu d’être stockée dans la base de données pour une exécution ultérieure.

Cela pourrait être utilisé dans une variété d’attaques. Par exemple, si la victime était un administrateur connecté sur le site vulnérable, le JavaScript reflété pourrait être utilisé pour créer un nouveau compte administrateur malveillant contrôlé par l’attaquant.

Pour que les attaques XSS réfléchies exploitent correctement un utilisateur, un attaquant doit inciter l’utilisateur à effectuer une action. Pour cette raison, nous vous recommandons vivement de rester vigilant lorsque vous cliquez sur des liens ou des pièces jointes dans des commentaires, des e-mails et d’autres sources de communication, sauf si vous êtes sûr de leur intégrité et de leur légitimité.


KingComposer est un plugin WordPress qui permet la création de pages par glisser-déposer, et il enregistre un certain nombre d’actions AJAX pour y parvenir. L’une de ces actions AJAX n’était plus activement utilisée par le plugin, mais pouvait toujours être utilisée en envoyant un POST demande à wp-admin/admin-ajax.php avec le action paramètre défini sur kc_install_online_preset.

La fonction vulnérable:

				fonction publique install_online_preset () {

$ data = isset ($ _ POST['kc-online-preset-data'])? esc_attr ($ _ POST['kc-online-preset-data']): '';
$ link = isset ($ _ POST['kc-online-preset-link'])? esc_url ($ _ POST['kc-online-preset-link']): '';
$ link = str_replace ('http://features.kingcomposer.com/', 'https://kingcomposer.com/presets/', $ link);
$ callback = ' »

echo $ callback;

sortie;

}

Cette fonction rend un JavaScript basé sur le contenu du kc-online-preset-link et kc-online-preset-data paramètres. Puisqu’il utilise le esc_attr et esc_url fonctions, il semble sûr à première vue. Malheureusement, cependant, le contenu du kc-online-preset-data les paramètres sont décodés en base64 après cette étape.

En tant que tel, si un attaquant a utilisé le codage base64 sur une charge utile malveillante et a incité une victime à envoyer une demande contenant cette charge utile dans le fichier kc-online-preset-data , la charge utile malveillante serait décodée et exécutée dans le navigateur de la victime. La version corrigée de ce plugin a résolu le problème en supprimant complètement la fonction vulnérable.

Calendrier de divulgation

15 juin 2020 – L’équipe Wordfence Threat Intelligence découvre une vulnérabilité non corrigée tout en enquêtant sur les vulnérabilités nouvellement corrigées dans le plugin KingComposer. Nous publions une règle de pare-feu couvrant à la fois les vulnérabilités corrigées et non corrigées pour nos utilisateurs Premium.
16 juin 2020 – Nous essayons de contacter les développeurs du plugin KingComposer.
25 juin 2020 – Nous contactons l’équipe des plugins WordPress à propos de la vulnérabilité.
26 juin 2020 – L’équipe WordPress Plugins répond et indique qu’elle est en contact avec les développeurs du plugin KingComposer.
29 juin 2020 – La version corrigée de KingComposer est disponible.
15 juillet 2020 – La règle de pare-feu devient disponible pour les utilisateurs de Wordfence Free.

Conclusion

Dans le blog d’aujourd’hui, nous avons discuté d’une vulnérabilité Reflected Cross-Site Scripting (XSS) dans le plugin KingComposer WordPress, et fourni des informations générales sur le fonctionnement des attaques Reflected XSS. Cette vulnérabilité a été entièrement corrigée dans la version 2.9.5 et nous recommandons fortement de mettre à jour cette version immédiatement. Sites en cours d’exécution Wordfence Premium sont protégés contre cette vulnérabilité, ainsi que contre les vulnérabilités plus anciennes du plugin KingComposer, depuis le 15 juin 2020. Les sites utilisant toujours la version gratuite de Wordfence recevront la mise à jour des règles de pare-feu le 15 juillet 2020.


Source link

%d blogueurs aiment cette page :