吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7991|回复: 10
收起左侧

[其他转载] 开源PHP网络验证 RainCms 2.2.0 20170510 不知这是Bug还是我配置的事

[复制链接]
天下 发表于 2017-10-9 22:27
本帖最后由 天下 于 2017-10-9 22:30 编辑

我在125.la上下载的作者发布的2.2.0版本的Raincms。
发现一个问题,我是小菜,大家可以测试下看看。是我配置的事还是真的有bug,还是作者故意放出来的版本。
我在我搭建的网站上随意注册了一个帐号,然后直接输入后台网址访问管理后台,竟然直接进去了。并且所有功能都可以操作。
1.JPG
2.JPG
3.JPG



开源不容易,我希望只是Bug而已。我在百度上搜索其它的搭建网站没有这种问题。但不知道版本是否跟我相同。。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 天下 发表于 2017-10-11 09:13
下面这个代码。是作者在精易论坛放出的2.2.0版本的。文件路径:\apps\admin\controller\base.php  
后台管理页面验证的。只验证了下是否登陆,我去,作者你要说你不是故意的我都不信。难道你不够专业吗?
[PHP] 纯文本查看 复制代码
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use think\auth\Auth;
use app\common\controller\Fn;

class Base extends controller {
	
	public function _initialize() {
		$request = Request::instance();
		if(is_login()==FALSE){//是否登录
			$this->redirect('home/Login/index');//跳转到登录页
		}		
		$fn      = new fn;
		
		$node    = $fn->getNode();
		$Controller  = $fn->getController();

		$auth    = new Auth();
		$auths   = $auth -> check(strtolower($node), Session('user.user_id'));		
		if(Session('user.user_id') == config('global_config.admin_id')){
			$auths=TRUE;
		}else{
			
		}
		$menu=new Menu();
		$menu=$menu->menu();
		$parent_id='';
		//echo '<pre>';
		//var_dump($menu);
		foreach($menu as $key=>$val){
			if($menu[$key]['url'] == $node){				
				$menu[$key]['class']='active';
				$parent_id=$menu[$key]['parent_id'];
			}
			//echo $menu[$key]['url'].'='.$Controller.'<br>';
			if(false !== strpos($menu[$key]['url'],$Controller)){
				$parent_id=$menu[$key]['parent_id'];
			}
		}

		$this->assign('parent_id',$parent_id);
		$this->assign('menu',$menu);
	}

}



下面是2.2.2版本的。从官网下的。修复过的。
[PHP] 纯文本查看 复制代码
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use think\auth\Auth;
use app\common\controller\Fn;

class Base extends controller {
	
	public function _initialize() {
		$request = Request::instance();
		if(is_login()==FALSE){//是否登录
			$this->redirect('home/Login/index');//跳转到登录页
		}		
		$fn      = new fn;
		
		$node    = $fn->getNode();
		$Controller  = $fn->getController();

		$auth    = new Auth();
		$auths   = $auth -> check(strtolower($node), Session('user.user_id'));		
		if(Session('user.user_id') == config('global_config.admin_id')){
			$auths=TRUE;
		}else{
			
		}
		//$auths==FALSE;
		if($auths==FALSE){
			if (Request::instance()->isAjax()){
				echo '没有权限!';
				exit;
			}else{
				$this->error('没有访问权限');
			    exit;
			}
		}
		$menu=new Menu();
		$menu=$menu->menu();
		$parent_id='';
		//echo '<pre>';
		//var_dump($menu);
		foreach($menu as $key=>$val){
			if($menu[$key]['url'] == $node){				
				$menu[$key]['class']='active';
				$parent_id=$menu[$key]['parent_id'];
			}
			//echo $menu[$key]['url'].'='.$Controller.'<br>';
			if(false !== strpos($menu[$key]['url'],$Controller)){
				$parent_id=$menu[$key]['parent_id'];
			}
		}

		$this->assign('parent_id',$parent_id);
		$this->assign('menu',$menu);
	}

}
 楼主| 天下 发表于 2017-10-11 09:19
下面代码是从官网下的更低一点的版本。2.1.3,低版本都有验证是否管理员,怎么你发出来的2.2.0版本就没有了呢。我希望你只是忘记了。这可比后门还严重。。
[PHP] 纯文本查看 复制代码
<?php
namespace app\admin\controller;
use think\Session;
use think\Controller;
use think\Db;
use think\Request;
use auth;

class Base extends controller {
	
	public function _initialize() {
		
        $request = Request::instance();
		$web_path = $request->root();
		$module_name = $request->module();
		$controller_name = $request->controller();
		$action_name = $request->action();	    
		$loginuid = Session('uid');
		$authName = $module_name.'/'.$controller_name.'/'.$action_name;		
		$auth = new \auth\Auth();
		$res=$auth -> check(strtolower($authName), $loginuid);
		
		if($loginuid==1){
			$res=TRUE;
		}
		if($controller_name == 'Login'){
			$res=TRUE;
		}		
		if($res==FALSE){
			if (Request::instance()->isAjax()){
				echo '没有权限!';
				exit;
			}else{
				$this->error('没有访问权限');
			    exit;
			}
			
		}
		if(!checkmodul('agents') && $controller_name == 'Agents'){
			$this->error('您未购买代{过}{滤}理模块,请至 www.rain68.com 购买');
			    exit;
		}
		$agenttype=Db::name('agents_type')->where('id',1)->find();
		if(!$agenttype){
			$data = [
			    'id' => 1,
			    'name' => '普通',
			    'discount' => '100',
			    'min_score' => '0',
			];
			Db::name('agents_type')->insert($data);
		}
		
		$nav=new Nav();
		$leftnav=$nav->leftnav();
				
		$this -> assign('controller', $leftnav['controller']);
		$this -> assign('action', $leftnav['action']);																									
		$this -> assign('leftinfo', $leftnav['menuinfo']);
		$this -> assign('levelid', $leftnav['levelid']);
		$loginuser = Session::get('username');		
		$this -> assign('loginuser', $loginuser);
		$this -> assign('loginuid', $loginuid);
		

	}
    
	

}
984754551 发表于 2017-10-9 22:37
a634085832 发表于 2017-10-9 22:56
这个应该不是你原创的吧,建议写上出处
tmpsforjxp 发表于 2017-10-10 00:29
改下数据库字段
 楼主| 天下 发表于 2017-10-10 08:39
a634085832 发表于 2017-10-9 22:56
这个应该不是你原创的吧,建议写上出处

请注意审题,我说了在精易上下的。并且第一张图片就是出处了吧。
头像被屏蔽
yuan71058 发表于 2017-10-10 11:06
提示: 作者被禁止或删除 内容自动屏蔽
wshq 发表于 2017-10-10 13:39
群里有补丁,但是还是有些问题. 自己玩玩还行 实际应用需要自己改
 楼主| 天下 发表于 2017-10-11 09:08
wshq 发表于 2017-10-10 13:39
群里有补丁,但是还是有些问题. 自己玩玩还行 实际应用需要自己改

嗯。2.2.2版本已经修复了,但是我怀疑作者是故意放出这样的版本。稍微懂点的人都知道后台加用户验证。更别说作者专业的了。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 13:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表