Easytalk任意文件包含漏洞

漏洞作者: ′ 雨。

在appaction.class.php中

[php]

public function index() {
	
		parent::tologin();
        $appname=trim($this->_get('appname'));
		$action=$this->_get('action');//直接调用方法
		
		$out=urldecode($_GET['out']);
		
		

		//是否开启应用
		$app=M('Plugins')->where("directory='$appname' AND available=1")->find();
		$this->assign('app',$app);
		
		if (!$app) {
			$this->display('apperror');
			exit;
		}
		//是否添加

[/php]

//获取内容

[php]

 

if (@file_exists(ET_ROOT .'/Apps/'.$appname.'/index.class.php')) {
			include_once(ET_ROOT .'/Apps/'.$appname.'/index.class.php');
            if (class_exists($appname)) {
			
				if (!@file_exists(ET_ROOT.'/Apps/'.$appname.'/'.$out)) {
				$out='';
                }
				
                if (!$out) {
                    $plugin=new $appname($this);
                    if ($action) {
                        echo $plugin->$action();
                        exit;
                    } else {
                        if (method_exists($appname,index)) {
                            $content=$plugin->index();
                        }
                    }
                } else {
                    include_once(ET_ROOT .'/Apps/'.$appname.'/'.$out);//这里包含了 无语截断。
                    exit; 
                }
            }

[/php]

 

if (@file_exists(ET_ROOT .'/Apps/'.$appname.'/index.class.php'))

需要满足这个 让$appname 为baseexp

然后$out可控。则可以包含了。

 

09120450ae42cdbece7eb83046ddf73528005efe

 

发表评论