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

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

缺陷编号: WooYun-2015-111824

漏洞标题: 北京国际首都机场重要敏感信息泄露导致出现一系列安全问题(可泄露所有人的登机信息、理论可getshell)

相关厂商: 北京国际首都机场

漏洞作者: izy

提交时间: 2015-05-05 23:53

公开时间: 2015-06-22 08:30

漏洞类型: 系统/服务运维配置不当

危害等级: 高

自评Rank: 20

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签: 敏感信息泄露

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

泄露..泄露...各种泄露...

详细说明:

这是当时在机场测试的,时间比较紧没有测试完全就登机了。。。

在登陆的时候抓包看到这个

屏幕快照 2015-05-03 上午6.41.22.png



然后我就把seat改成我朋友的,同样返回一个password,并且可以登录

屏幕快照 2015-05-03 上午6.41.42.png



屏幕快照 2015-05-03 上午6.42.24.png



屏幕快照 2015-05-03 上午6.42.15.png



返回的账号都是可以成功登陆的,因为不在机场所以就不测试了...



当时因为登陆速度太慢了,同时用nmap探测了一下wifi认证的服务器:**.**.**.**

对机场用户开放了如下端口:

屏幕快照 2015-05-03 上午6.37.18.png



如果是外网则未开放80、8090端口

在机场的时候访问443端口:http://**.**.**.**:443/ (刚刚回来发现外网也可以访问)

有目录遍历漏洞

屏幕快照 2015-05-03 下午6.17.01.png



服务器账号密码泄露(不可外连)

屏幕快照 2015-05-03 上午6.31.02.png



找到源码,还是1月份备份的

屏幕快照 2015-05-03 下午6.17.01.png



屏幕快照 2015-05-03 下午6.24.22.png



屏幕快照 2015-05-03 下午6.24.33.png



还有各种接口的信息

稍微看了一下源码,有很多漏洞啊..

因为前面就有一个越权访问的漏洞,所以重点看了一下登陆、查询的逻辑,普通的:短信炸弹、越权访问(泄露登机人信息)

都是验证成功后直接调用接口,而我们可以直接访问接口绕过验证

code 区域
public function sendsmsAction(){
$this->_helper->viewRenderer->setNoRender();
$userip = $_SERVER["REMOTE_ADDR"];
$pid = $_REQUEST['pid'];
$phone = $_REQUEST['phone'];
$lan = $_REQUEST['lan'];
$curtime = $_REQUEST['curtime'];
$passport = $_REQUEST['passport'];
$password = "auto!^**wwkeypss";
$json = array(array('code'=>'1', 'msg'=>'申请成功,直接发送短信'),array('code'=>'2', 'msg'=>'申请成功,返回帐号'),array('code'=>'3', 'msg'=>'申请成功,返回帐号和密码'),array('code'=>'-1', 'msg'=>'登陆失败'),array('code'=>'-2', 'msg'=>'非法的手机号'),array('code'=>'-3', 'msg'=>'非法的mac地址'),array('code'=>'-4', 'msg'=>'非法>的校验位'));
$value = md5($pid.$phone.$curtime.$password);

if($passport!=$value){
$rt = json_encode($json[6]);
echo $rt ;
die;
}

$getsmsurl = "**.**.**.**/portal/regbycustomer?idtype=1&idnum=$phone";
$f = fopen($getsmsurl, "r");
if($f){
$smscode=fread($f,60);
$result = substr($smscode,10,1);
// var_dump($smscode);echo "</br>";
// var_dump($result);
if($result == 1){
$rt = json_encode($json[0]);
echo $rt;
}
}


}





越权访问,理论可以获得所有人的登机信息

code 区域
public function ajaxloginAction()
{
$this->_helper->viewRenderer->setNoRender();
$user=trim($_POST['user']);
$password=trim($_POST['password']);
$mac=$_SESSION["usermac"];
$userIp = $_SERVER['REMOTE_ADDR'];
$userip = $_SERVER["REMOTE_ADDR"];
if ('' == $user) {
echo -4;//账号不能为空
return;
}
if ('' == $password) {
echo -5;//密码不能为空
return;
}
//require_once '../application/models/Login/Standard.php';
require_once '../application/models/Remote/DataValidation.php';
$login=new Models_Remote_DataValidation();
$rs=$login->checkLogin($user, $password);
//echo $rs;// -1:用户名,密码不对,-2:用户帐号使用时间已到期,正值:剩余上网时间
$len=strlen($rs);
if($len > 10)
{
echo 0;
fopen("http://".REMOTE_ADDRESS."/portal/macinsacct?mac=$mac&user=$user&pass=$password", "r");

error_log("user==================================".$user);
$i=0;
for($i=0;$i<3;$i++)
{
$rt=$this->test();
error_log("bras rt=$rt");


if(0==$rt)
{
$sendurlcn = "**.**.**.**/portal/sendloginauth?ip=$userip&username=$user&msgtype=2";
try{
fopen ( $sendurlcn, "r" );
}catch(Exception $e){

}

break;
}


break;


}
if(0==$rt)
{

$cookiewu=$_COOKIE['loginwu'];
$cookiewp=$_COOKIE['loginwp'];
if ($cookiewu && $cookiewp){

}else{
$loginuser = $user;
$loginpass = $password;
$sendurlcn = "**.**.**.**/portal/getregtime?username=$user";
$f = fopen ( $sendurlcn, "r" );
if($f){
$name=fread($f,80);
$logintimescj = $name;
}else{
// $username = $user;
}
setcookie("loginwu","$loginuser",time()+3600*4);
setcookie("loginwp","$loginpass",time()+3600*4);
setcookie("loginwt","$logintimescj",time()+3600*4);
}
error_log("user=================loginsuccess============".$user);
echo $rt;
}
elseif(2==$rt)
{
echo "1";
error_log("重复登陆,直接跳转!");
}
else
{
echo "-3";
error_log("login fail !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}

}else
{
echo $rs;
error_log("login failed rt=$rt\n");
}
}



直接访问接口则绕过登陆验证,理论可以登陆所有账户

因为在外网所以不能测试

如果可以,请找一家安全公司做源码审计项目,问题太多,既然用户这么信任你,请保护好用户的隐私。

在这也是 可能 造成前台getshell的漏洞

code 区域
function updateConf($username, $pass, $server){
if(!file_exists("api/config.inc.php")) return "文件smsdemo/api/config.inc.php 不存在!";
if(!is_writable("api/config.inc.php")) return "文件smsdemo/api/config.inc.php 不可写!请检查文件属性!";
$fd = fopen("api/config.inc.php","w");
if(!$fd) return "文件smsdemo/api/config.inc.php 打不开, 请检查文件属性!";
$line = '<? '."\n".
'/** '."\n".
' * 这是配置文件 '.
' * $'."vcpserver SCP服务器地址,测试服务器为**.**.**.**,正式服务器为**.**.**.** "."\n".
' * $'."vcpserverport SCP服务器,在测试环境和真实环境,使用的接口均为20001 "."\n".
' * $'."vcpsuser 时代互联提供的真实短信用户或测试用户 "."\n".
' * $'."vcppassword 时代互联提供的真实短信用户密码或测试用户密码 "."\n".
' * '."\n".
' * **.**.**.**,Inc. http://**.**.**.** '."\n".
'**/ '."\n".
'$'.'vcpserver="'.$server.'"; '."\n".
'$'.'vcpserverport="20001"; '."\n".
'$'.'vcpuser="'.$username.'"; '."\n".
'$'.'vcppassword="'.$pass.'"; '."\n".
'?> '."\n";
if(fwrite($fd, $line)===FALSE) return "文件smsdemo/api/config.inc.php 写入失败!请检查文件属性!";
fclose($fd);
return "1";
}



还有这个服务器,不知为何测试有点问题:

$vcpserver="**.**.**.**";

$vcpserverport="20002";

$vcpuser="m****18";

$vcppassword="o****t";

漏洞证明:

屏幕快照 2015-05-03 下午6.39.58.png



所有资料、源码已删。

修复方案:

安全审计、服务器安全配置、第三方接口认证

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2015-05-08 08:28

厂商回复:

CNVD未直接复现,已经转由CNCERT向民航行业测评单位通报,由其后续协调网站管理单位处置.

最新状态:

暂无


漏洞评价:

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

漏洞评价(少于3人评价):
登陆后才能进行评分
100%
0%
0%
0%
0%

评价

  1. 2015-05-04 00:13 | Mr.Lonely ( 路人 | Rank:0 漏洞数:1 | 努力成为一个有用的人。)
    0

    走到哪儿,挖到哪儿。。。

  2. 2015-05-04 08:44 | izy ( 普通白帽子 | Rank:164 漏洞数:28 | ://1zy.pw@xdsec-team)
    0

    @Mr.Lonely 强迫症T_T

  3. 2015-05-06 13:42 | phith0n 认证白帽子 ( 普通白帽子 | Rank:804 漏洞数:125 | 一个想当文人的黑客~)
    0

    izy日机场

  4. 2015-05-06 18:12 | izy ( 普通白帽子 | Rank:164 漏洞数:28 | ://1zy.pw@xdsec-team)
    0

    @phith0n 23333

  5. 2015-05-07 14:21 | Mr.Lonely ( 路人 | Rank:0 漏洞数:1 | 努力成为一个有用的人。)
    0

    @phith0n 0_o

  6. 2015-05-08 09:02 | 浅蓝 ( 普通白帽子 | Rank:283 漏洞数:111 | 圈内最帅,没有之一)
    0

    好叼

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