首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【代码审计】PHPYun_v4.3 CMS重装到Getshell

【代码审计】PHPYun_v4.3 CMS重装到Getshell

作者头像
Bypass
发布2019-07-08 17:13:27
1K0
发布2019-07-08 17:13:27
举报
文章被收录于专栏:BypassBypass

01

前言

PHPYun是一款国内流行的人才网站管理系统,做了一些测试,发现了一点问题,做个记录,未深入。

02

环境搭建

PHPYun官网:https://www.phpyun.com

网站源码版本:PHPYUN人才招聘系统v4.3Beta

程序源码下载:链接: https://pan.baidu.com/s/1pMQ58Np 密码: je4n

默认后台地址:http://127.0.0.1/admin/index.php

默认账号密码:admin/admin

03

CMS重装漏洞

代码分析:

1、漏洞文件位置:/install/index.php

在index.php中,根据PHP版本来选择包含目录,我们的环境包含的PHP5目录,进一步跟进PHP5目录查看代码

2、漏洞文件位置:/install/php5/install.php

可以看到,这边是有有做lock文件判断的,那么问题出在哪呢? 我们再来看一下常量S_ROOT的定义:

define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);

也就是S_ROOT等价于 \install\,而不是根目录\;所以这边的判断是判断/install//data/phpyun.lock文件是否存在。

我们再来看一下同文件install.php下的第357-368行:

代码逻辑上,/install/index.php文件包含/install/php5/install.php文件,这边使用相对路径,那么生成的phpyun.lock文件在根目录下/data/phpyun.lock。

综上,在php5/install.php中判断/install/data/phpyun.lock文件是否存在,然而实际上phpyun.lock在/data/phpyun.lock中,导致程序在实现上存在CMS重装漏洞。

漏洞利用:

代码分析主要在代码逻辑上,利用却很简单,直接访问http://127.0.0.1/install/index.php 直接进入重装界面。

04

后台Getshell

代码分析:

漏洞文件位置:/admin/model/config.class.php 第88-114行中:

save_action函数对用户提交的参数写入数据库中,并调用web_config()函数进行写入到配置文件,我们继续跟进web_config()函数

漏洞文件位置:/app/public/common.php 第513-529行:

这段代码从数据库中读取数据,并写入到配置文件config.php中,并未经任何处理,导致攻击者可以构造脚本代码写入配置文件,从而导致程序在实现上存在代码执行漏洞。

漏洞利用:

登录系统--网站设置--安全设置--填写Payload:

5.2版本: \");phpinfo();$config=array(\"

5.4版本:\");phpinfo();/*

通过直接访问http://127.0.0.1/data/plus/config.php,成功触发代码执行漏洞

05

总结

像PHPYun这样的人才网站管理系统,相对功能会复杂些,但仍有很多可以挖掘的点,黑盒结合白盒进行测试,发现的两个问题,并未深入,欢迎志同道合的朋友来相互探讨,交流。

Bypass

About Me

一个网络安全爱好者,对技术有着偏执狂一样的追求。致力于分享原创高质量干货,包括但不限于:渗透测试、WAF绕过、代码审计、安全运维。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bypass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档