Easytalk任意文件包含漏洞下载

来源:黑吧安全网 浏览:1049次 时间:2014-04-30
做网站找雨过天晴工作室

在appaction.class.php中

<pre><code>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;
		}
		//是否添加</code></pre>

//获取内容

 
<pre><code>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; 
                }
            }</code></pre>

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

需要满足这个 让$appname 为baseexp

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