1. 首页
  2. 网络安全新闻

Linux系统管理工具Webmin0day远程代码执行漏洞

漏洞说明:

Linux系统管理工具Webmin,Webmin运行在10000端口以上。在重置密码功能中发现了一个错误,该错误允许恶意第三方由于缺少输入验证而执行恶意代码。

漏洞影响:

Webmin最新版本1.920实例,其设置为“启用了用户密码更改”

该漏洞已获得CVE CVE-2019-15107

截至撰写本文时间(2019-08-16),您可以从webmin的官方网站下载最新版本中的漏洞

版本1.920中的易受攻击的代码

# Read shadow file and find user
&lock_file($miniserv{'passwd_file'});
$lref = &read_file_lines($miniserv{'passwd_file'});
for($i=0; $i<@$lref; $i++) { @line = split(/:/, $lref->[$i], -1);
local $u = $line[$miniserv{'passwd_uindex'}];
if ($u eq $in{'user'}) {
$idx = $i;
last;
}
}
defined($idx) || &pass_error($text{'password_euser'});

# Validate old password
&unix_crypt($in{‘old’}, $line[$miniserv{‘passwd_pindex’}]) eq
$line[$miniserv{‘passwd_pindex’}] ||
&pass_error($text{‘password_eold’});

# Make sure new password meets restrictions
if (&foreign_check(“changepass”)) {
&foreign_require(“changepass”, “changepass-lib.pl”);
$err = &changepass::check_password($in{‘new1’}, $in{‘user’});
&pass_error($err) if ($err);
}
elsif (&foreign_check(“useradmin”)) {
&foreign_require(“useradmin”, “user-lib.pl”);
$err = &useradmin::check_password_restrictions(
$in{‘new1’}, $in{‘user’});

漏洞证明:

&unix_crypt crypt函数中的漏洞法则,根据系统/etc/shadow文件检查passwd。通过添加一个简单的管道命令(“|”),作者可以利用它来执行他想要的任何代码。

Linux系统管理工具Webmin0day远程代码执行漏洞

只是通过一个简单的POST请求就可以证明这很容易被利用。

Linux系统管理工具Webmin0day远程代码执行漏洞

Webmin尚未发布公开声明或补丁,这意味着运行webmin的每个人都在运行易受攻击的版本。在互联网上公开,安全时代在shodan搜索发现有点超过130000个站点使用webmin。

 

文章来源:【安全时代】 原文链接:https://www.agesec.com/news/6338.html

安全时代全部内容仅适用于网络安全技术爱好者学习研究,学习中请遵循国家相关法律法规。

安全时代全部数据来源互联网,不代表安全时代立场,如侵犯您权益可邮箱联系我们,详情:版权纠纷

发表评论

电子邮件地址不会被公开。 必填项已用*标注