之前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 https://bx.58.pm/bx.sh && bash bx.sh
现已开放全版本。 更新在 https://bx.58.pm/主要对升级处、账号绑定处、强制更新处 进行了修改。修改后的版本无法绑定账号,无法升级到官方版,不再上传机器配置信息。
当然,也有一些小的彩蛋需要自己发现。