
CVE-2018-6389 PoC node js multisite avec proxy

Ce script est basé sur CVE-2018-6389, un problème assez sournois de Wordpress qui, malheureusement, ne sera probablement pas corrigé par l'équipe développant la plateforme bien qu'il soit connu depuis longtemps.
!!! IMPORTANT AVANT DE CONTINUER !!! L'ensemble du dépôt et des informations partagées ici est libre d'utilisation sous toute forme - copie, amélioration, modification à des fins d'amélioration ou autres, ainsi que partage. L'utilisation des informations partagées à des fins autres que pédagogiques, expérimentales et/ou pour protéger votre propre plateforme basée sur Wordpress est probablement en contradiction avec de nombreuses lois que je ne connais pas. N'utilisez pas le script pour attaquer des sites ! Je ne suis pas responsable de vos actions. En l'utilisant, vous acceptez ces conditions. Une attaque DDoS (déni de service) dirigée vers un site qui n'est pas votre propriété peut être considérée comme une attaque terroriste. !!! ASSUREZ-VOUS D'ÊTRE ABSOLUMENT CERTAINS DE VOS ACTIONS ET RÉFLÉCHISSEZ BIEN AVANT DE CONTINUER !!!
J'ai écrit ce script il y a longtemps, mais comme je sais que vous êtes très cool, j'ai décidé de le partager avec vous. Utilisez-le comme prévu ! Vraiment...
Il y a beaucoup d'informations sur le sujet sur le web, ainsi que plusieurs scripts prêts à l'emploi, la plupart écrits en Python comme Shiva et celui-ci, dont j'ai tiré beaucoup d'inspiration quand je l'ai écrit, avec lesquels vous pouvez aussi tester cette "faiblesse" dans un environnement isolé, mais comme je suis un "sairdzhiya", j'ai décidé d'ajouter quelques "petites améliorations".
Ici vous pouvez lire un blog intéressant sur le sujet.
En bref, si vous chargez https://your-wordpress-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery (en changeant bien sûr le lien pour qu'il pointe vers votre instance) et que ce qui s'affiche à l'écran est "une merde de js", alors le site a un problème. Chaque paramètre listé dans la query string est un nom de fichier qui n'est pas en cache. Cela signifie qu'il effectue une opération d'E/S pour chaque fichier du disque, les rassemble en un seul et le renvoie au client. Mais ces fichiers sont assez nombreux. Beaucoup plus que la ressource nécessaire pour les demander plusieurs fois. Disons qu'avec un ordinateur portable et une liaison descendante d'environ 50 Mo, environ 30 sites d'hébergement de qualité moyenne tiennent 20 à 30 secondes avant de finalement s'effondrer.
Le fichier websites.js contient une liste de sites - "victimes", dont j'ai oublié involontairement d'enlever quelques-uns restants, dont je sais avec certitude qu'ils sont vulnérables au contact du script. Je jure que je ne l'ai jamais essayé, je pense juste comme ça.
Le fichier userAgents.js contient une liste de user-agents qui sont choisis aléatoirement à chaque requête individuelle vers les victimes.
fileList.js contient une liste des différents fichiers à charger depuis la "victime", afin que, lors d'une mise à jour de Wordpress, ils puissent être facilement ajoutés ou corrigés.
Le script d'exécution lui-même se trouve dans index.js.
Dans la console, des informations colorées sont affichées pour chaque "victime" individuellement et celles qui sont sous DDoS sont colorées en rouge.
npm install
//редактирай webstites.js
node index.js
inurl: “wp-admin/load-scripts.php”
J'ai décidé de dédier ce script à ma télévision préférée tvsz, parce que je sais qu'ils sont de grands "admirateurs" et surtout, parce qu'ils trouveront le lien de leur site dans ma liste. En gros, je vais leur remonter un peu le classement, leur rendre une vieille "faveur". Aussi, j'en profite pour saluer mon père qui avait sa fête hier, mais je n'ai pas eu le temps de l'appeler.