更新补充
本文仅供学习交流使用,如无法复现说明已修复。
前言
本不想开心的,1Panel 作为新一代的 Linux 服务器运维管理面板,功能丰富,界面美观,收到许多人的青睐。同时其社区版作为开源软件,为国产开源事业做出了极大贡献。
同时,其专业版在社区版的基础上,提供了:WAF 防火墙(日志查看以及自定义规则)、网站防篡改、自定义 LOGO、GPU 监控、网站监控报表、专享黑金主题、内网代理模式、定时病毒扫描、短信告警、工单支持 等众多新功能,而且价格实惠 凭此链接享受 8 折优惠
那么我在这里为什么会讲开心版呢?
-
为官方提供逆向思路,从而在接下来的更新中提高产品授权的安全性。
-
研究并提出改进授权机制的建议。
警告!!!
本文仅供技术研究和学习交流之用。请注意,任何尝试破解、逆向工程或非法使用商业软件的行为都可能违反相关法律法规和软件使用协议。这些行为不仅可能导致法律风险,还会损害软件开发者的合法权益,不利于开源社区和软件产业的健康发展。
强烈建议您:
-
尊重知识产权,支持正版软件。
-
如果预算有限,可以选择使用免费的开源替代方案。
-
积极参与开源社区,通过合法途径贡献自己的力量。
-
如有功能建议或改进意见,请通过官方渠道向开发团队反馈。
良好的软件生态需要每个人的共同维护。
原理解析
猜想
大体上,就是通过中间人攻击劫持替换掉 1Panel 发起的激活请求,考虑到激活服务器是host
是 lxware.cn
的包即可,甚至 1Panel 贴心的在 面板设置
中加入了可配置 代理服务器
,标注了功能:
设置代理服务器后,将在以下场景中生效:
系统许可证的验证和同步
好好好,你是生怕我不知道可以在这里抓包😅
验证
那么简简单单起一个 http 代理
注意想要查看 SSL 加密需要将根证书加入服务器 CA 信任目录。
root 用户执行:
cp ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
重启服务器,配置 1Panel 代理服务器
尝试随便导入一个文件当许可证:
未发现相关请求,那么就是在 1Panel 内部进行许可证格式校验。
那么我们找一个正式的许可证导入进行尝试:【凭此链接享受 8 折优惠
这里不放具体 API。
返回状态 200,响应一个 success 的 json 代码,激活成功:
那么我们只需要劫持该请求,同样返回相同的响应即可,激活成功。
那么,知道了原理,开心的办法就有很多了:
如何开心?
代理服务器劫持法
编写一个代理服务器程序,编制成一键脚本,响应激活请求。
自建验证服务器法
使用 1Panel 的 Openresty 自建一个假的凌霞官网,替换 host,响应激活请求。
缺陷
无法使用依赖于凌霞官网的功能,如短信通知等。
建议
使用 证书固定(Certificate Pinning)来避免这类中间人攻击,具体实现方式待开发者考量。
疑问 - 1Panel 开心的意义是啥?
截至本文编写当日,1Panel 社区版 和 1Panel 专业版 的功能差异为:
WAF 防火墙(日志查看以及自定义规则)、网站防篡改、自定义 LOGO、GPU 监控、网站监控报表、专享黑金主题、内网代理模式、定时病毒扫描、短信告警、工单支持。
事实上,对于大多数个人用户而言,使用所谓的“开心版”1Panel 并没有实际意义:
-
功能差异有限。社区版已经提供了绝大部分核心功能,足以满足个人用户的基本需求。
-
稳定性和安全性存疑。若使用第三方的激活服务器,由于添加了不受信任的 CA 证书,服务器的所有加密请求在别人眼里都是明文,给系统安全带来潜在风险。
-
无法获得官方支持。遇到问题时无法得到及时的技术支持和更新。
-
潜在的法律风险。使用未经授权的版本可能违反软件使用协议,面临法律纠纷。
-
不利于开源生态。这种行为损害了开发者的积极性,长远来看不利于开源社区的健康发展。
-
道德考量。使用正版软件是对知识产权的尊重,也是支持优质软件持续发展的方式。
对于确实需要专业版功能的用户,建议通过 正规渠道 购买授权。这不仅能获得完整的功能和服务,还能为产品的持续改进提供支持。
推荐视频
结语
软件用起来才有价值