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

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

缺陷编号:wooyun-2013-017413

漏洞标题:韵达快递快件查询算法设计缺陷

相关厂商:韵达快递

漏洞作者: e.t.

提交时间:2013-01-17 10:39

修复时间:2013-03-03 10:39

公开时间:2013-03-03 10:39

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

危害等级:低

自评Rank:3

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-01-17: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-03-03: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

快件查询部分设计存在缺陷和不严密,可能造成批量单号查询甚至DOS攻击

详细说明:

1. 韵达快递的单号查询可能通过官网主页操作 (http://www.yundaex.com/)
首先登陆主页,在查询栏里填入单号

query.png


2. 接下来会转入验证码输入页面

code.png


3. 验证码填写正确后,会再转入查询结果页面并输出结果

result.png


4. 最后显示查询结果的link为:
http://qz.yundasys.com:18090/ws/ykjcx/cxend.jsp?wen=36676eece664166e6252a1264d
其中参数wen的值是一串26位16进制字符,这串字符与13位单号存在一一映射关系
(1) 26位字符中从左至右奇数位字符固定,分别为 3?6?6?e?e?6?1?6?6?5?a?2?4?
(2) 26位字符中从左至右偶数位字符,即上一行中表示为?的字符,第2n位是订单号中的第n位字符决定的
(3) 具体的对应关系为:
单号第1位对应wen值第2位
0 - 7
1 - 6
2 - 5
3 - 4
4 - 3
5 - 2
6 - 1
7 - 0
8 - f
9 - e
单号第2位对应wen值第4位
0 - 7
1 - 6
2 - 5
3 - 4
4 - 3
5 - 2
6 - 1
7 - 0
8 - f
9 - e
单号第3位对应wen值第6位
0 - e
1 - f
2 - c
3 - d
4 - a
5 - b
6 - 8
7 - 9
8 - 6
9 - 7
单号第4位对应wen值第8位
0 - c
1 - d
2 - e
3 - f
4 - 8
5 - 9
6 - a
7 - b
8 - 4
9 - 5
单号第5位对应wen值第10位
0 - 6
1 - 7
2 - 4
3 - 5
4 - 2
5 - 3
6 - 0
7 - 1
8 - e
9 - f
单号第6位对应wen值第12位
0 - 4
1 - 5
2 - 6
3 - 7
4 - 0
5 - 1
6 - 2
7 - 3
8 - c
9 - d
单号第7位对应wen值第14位
0 - 6
1 - 7
2 - 4
3 - 5
4 - 2
5 - 3
6 - 0
7 - 1
8 - e
9 - f
单号第8位对应wen值第16位
0 - e
1 - f
2 - c
3 - d
4 - a
5 - b
6 - 8
7 - 9
8 - 6
9 - 7
单号第9位对应wen值第18位
0 - 2
1 - 3
2 - 0
3 - 1
4 - 6
5 - 7
6 - 4
7 - 5
8 - a
9 - b
单号第10位对应wen值第20位
0 - 2
1 - 3
2 - 0
3 - 1
4 - 6
5 - 7
6 - 4
7 - 5
8 - a
9 - b
单号第11位对应wen值第22位
0 - 1
1 - 0
2 - 3
3 - 2
4 - 5
5 - 4
6 - 7
7 - 6
8 - 9
9 - 8
单号第12位对应wen值第24位
0 - 6
1 - 7
2 - 4
3 - 5
4 - 2
5 - 3
6 - 0
7 - 1
8 - e
9 - f
单号第13位对应wen值第26位
0 - d
1 - c
2 - f
3 - e
4 - 9
5 - 8
6 - b
7 - a
8 - 5
9 - 4
5. 根据这样的对应关系可以在知道单号的情况下转过填写认证码的过程直接构造出可呈现订单状态结果的页面,从而可以实现批量的订单查询,甚至可以通过这种方式向查询服务器发动DOS攻击。

漏洞证明:

假如我们要查询一个号码为1234567899876的订单,只需要根据上述规则就可以构造成链接:
http://qz.yundasys.com:18090/ws/ykjcx/cxend.jsp?wen=36656de8e36211666b5ba9214b
直接呈现出查询结果,无需输入认证码

verify.png

修复方案:

修改业务逻辑,向查询者隐藏订单在内部记录里的标志符

版权声明:转载请注明来源 e.t.@乌云


漏洞回应

厂商回应:

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


漏洞评价:

评论

  1. 2013-05-08 15:11 | libmaru ( 路人 | Rank:21 漏洞数:4 | 简要介绍不能为空)

    网上能找到的几篇相关文章都说前一个字符是干扰码,但是其实这种说法不准确。它仍然是一种逐字节的映射关系。有兴趣的话可以从跳转页面着手来还原算法本来的面貌。