之前Bx面板出现漏洞后强制升级的做法,给一些人造成了困扰。周末看了一下,其实只是利用了面板自身的升级检查来进行了升级。
关键文件在 /www/server/panel/class/ajax.py 中 def UpdatePanel
是否执行升级程序
if(updateInfo['force'] == True or hasattr(get,'toUpdate') == True or os.path.exists('data/autoUpdate.pl') == True):
往前看 updateInfo = json.loads(public.httpPost(sUrl,data)) ,updateInfo 就是更新检查后返回的数据。
也就是说升级程序触发的方式有三种,
一是宝X服务器返回了 force 为True(现在抓包看到的是false)。
二是手动点击去更新时带上的 toUpdate 参数。
三是data/autoUpdate.pl文件存在,即为设置了自动更新。
于是对 Bx面板 进行了一些修改,并且托管到了白**的甲骨文韩国oss。
curl -sSLO http://install.58.pm/install_panel.sh && bash install_panel.sh (目前仅支持centos7 x64)
主要对升级处、账号绑定处、强制更新处 进行了修改。修改后的版本无法绑定账号,无法升级到官方版,不再上传机器配置信息。
当然,也有一些小的彩蛋需要自己发现。
仅供学习交流使用,不对数据的安全性负责。
发现共鸣
Warning: curl_setopt() expects parameter 1 to be resource, null given in /www/wwwroot/blog.longshi.org/usr/themes/armx/functions.php on line 1531
如是说:我们擦身而过,是为了相识或者遗忘。