0x00
之前在t00ls上看到的,漏洞原理很简单,但是都是细节问题,很值得去学习。
感谢bypass师傅。
也发了邮件给官方,但没有任何回复,估计是漏洞作者bypass师傅报备了吧。
0x01
经测试该漏洞影响从4.3到 4.5 所有版本,4.2部分版本受影响,4.2最终版本不受影响。具体情况请自行测试。
0x02
漏洞原理:
看到install 文件夹里的index.php,这里分php5,php7两种情况进行调用安装。
以php5为例。
文件 根目录/install/php5/install.php 代码中:
先判断了是否存在lock文件,存在即退出安装。
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MTg0NzQxMy0yMDk5NTgyNTU2LnBuZw%3D%3D.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9Mw%3D%3D.jpg?w=700&webp=1)
其中S_ROOT这个常量是在前面index.php文件中定义的。
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MTkxMDEyOC01NjU3MDE4Ni5wbmc%3D.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9NA%3D%3D.jpg?w=700&webp=1)
取得是当前文件的绝对路径。拼接起来,检测的lock文件位置应该是 根目录/install/data/phpyun.lock。
这里没什么问题。
按照正常安装走完,看到最后一步
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MTkzMDY4Mi0xNTE4MjY5MTc4LnBuZw%3D%3D.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9NQ%3D%3D.jpg?w=700&webp=1)
创建lock文件,这里用的是相对路径。install.php是被index.php 用require的模式调用的。
取得路径应该是 根目录/install/,按照上图的路径创造的lock文件应该是放至于 根目录/data/phpyun.lock。
创建的lock文件路径是 根目录/data/phpyun.lock,检测的路径却是 根目录/install/data/phpyun.lock
那么一个重装的安全隐患就埋下了。
当用户安装完成之后,是可以被无限重装的,因为这个路径错误问题。
以本地phpyun4.3 已经安装完成系统为例,是可以被重装的。
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MTk1NDE4Ny03NDc2NzAzMzMucG5n.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9Ng%3D%3D.jpg?w=700&webp=1)
最新版phpyun 4.5这里的代码和4.3是一样的。
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9Nw%3D%3D.jpg?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9OA%3D%3D.jpg?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MjAyNDU2My05MDA0NjI2MTMucG5n.png?w=700&webp=1)
phpyun 4.2 版本
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MjIwMTg1NC0xODU3MjA4ODIwLnBuZw%3D%3D.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9OQ%3D%3D.jpg?w=700&webp=1)
处理逻辑不一样,这个版本不受影响。
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9MTA%3D.jpg?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MjEwMzQxNC0xNzgxNjIyMjM0LnBuZw%3D%3D.png?w=700&webp=1)
经测试phpyun 4.2某些版本依旧是受影响的。
0x03
网上一些系统:
官方测试站,版本phpyun 4.2111:
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9MTE%3D.jpg?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MjEyMTI2MS0xMjAzMDU1MDM0LnBuZw%3D%3D.png?w=700&webp=1)
某招聘网,版本phpyun 4.3
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cHM6Ly9pbWFnZXMyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIwNTQ3Ny8yMDE4MDMvMTIwNTQ3Ny0yMDE4MDMwOTA5MjEzNzQ4MS0yNDYxNDIzMTYucG5n.png?w=700&webp=1)
![[漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本 [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本](https://image.miaokee.com:8440/aHR0cDovL21haWwuMTYzLmNvbS9qczYvcz9mdW5jPW1ib3g6Z2V0TWVzc2FnZURhdGEmc2lkPXZBU3drcmtockJjY3NJUVZpb2hoamRGb0prenNGYU1LJm1pZD0xNDoxdGJpRGhIODlWWGxtYWttWHdBQXN2JnBhcnQ9MTI%3D.jpg?w=700&webp=1)
0x04
先谈谈修复,修复很简单,已经装了的用户,只需把install目录给删了就行。
还没有安装的新用户,把php7 和php5 下的两个install.php 这一行
@fopen("../data/phpyun.lock","w+");
改为
@fopen(S_ROOT."/data/phpyun.lock","w+");
即可。
总的来说,漏洞影响还是挺大的,无论是漏洞的威力还是广度,
重装可以毁掉数据,也可以getshell。
只是因为一个小点就造成了重大的问题,果真安全无小事,从每一个小地方做起。