作品发布     邀请码    设为首页  收藏 

当前位置:文章漏洞 → 文章内容 >> 蝉知企业门户系统 v2.5 前台getshell


蝉知企业门户系统 v2.5 前台getshell

更新时间:2014-11-15 16:56:16   作者:佚名  来源:不详

看到

module/file/control.php

code 区域
public function ajaxUpload($uid)

{

$file = $this->file->getUpload('imgFile');

$file = $file[0];

if($file)

{

if(!$this->file->checkSavePath()) $this->send(array('error' => 1, 'message' => $this->lang->file->errorUnwritable));

move_uploaded_file($file['tmpname'], $this->file->savePath . $file['pathname']);



if(in_array(strtolower($file['extension']), $this->config->file->imageExtensions) !== false)

{

$this->file->compressImage($this->file->savePath . $file['pathname']);

$imageSize = $this->file->getImageSize($this->file->savePath . $file['pathname']);

$file['width'] = $imageSize['width'];

$file['height'] = $imageSize['height'];

}

$url = $this->file->webPath . $file['pathname'];



$file['addedBy'] = $this->app->user->account;

$file['addedDate'] = helper::now();

$file['editor'] = 1;

unset($file['tmpname']);

$this->dao->insert(TABLE_FILE)->data($file)->exec();



$_SESSION['album'][$uid][] = $this->dao->lastInsertID();



die(json_encode(array('error' => 0, 'url' => $url)));

}

}



这个上传文件的

跟到

code 区域
public function getUpload($htmlTagName = 'files')

{

$files = array();

if(!isset($_FILES[$htmlTagName])) return $files;

/* The tag if an array. */

if(is_array($_FILES[$htmlTagName]['name']))

{

extract($_FILES[$htmlTagName]);

foreach($name as $id => $filename)

{

if(empty($filename)) continue;

$file['extension'] = $this->getExtension($filename);





继续跟进 getExtension函数

code 区域
public function getExtension($filename)

{

$extension = pathinfo($filename, PATHINFO_EXTENSION);

if(empty($extension)) return 'txt';

if(strpos($this->config->file->dangers, strtolower($extension)) !== false) return 'txt';

return $extension;

}



dangers 的值是

code 区域
$config->file->dangers = 'php,jsp,py,rb,asp,'; // Dangerous file types.



if(strpos($this->config->file->dangers, strtolower($extension)) !== false) return 'txt'

这句话逻辑有点问题,应该把strpos的两个参数位置替换下,

例如 我提交 a.php+空格的话 就能 绕过了

1.jpg



2.jpg



漏洞证明:

1.jpg



2.jpg

修复方案:

上面写了

责任编辑:华中帝国        



本文引用网址: 

蝉知企业门户系统 v2.5 前台getshell的相关文章
发表评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码