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  

发表评论