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

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

缺陷编号:wooyun-2015-0119116

漏洞标题:苏宁APP 苏宁应用商店&易付宝钱包拒绝服务打包

相关厂商:江苏苏宁易购电子商务有限公司

漏洞作者: 小手冰凉

提交时间:2015-06-09 15:45

修复时间:2015-09-07 16:28

公开时间:2015-09-07 16:28

漏洞类型:拒绝服务

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-06-09: 细节已通知厂商并且等待厂商处理中
2015-06-09: 厂商已经确认,细节仅向厂商公开
2015-06-12: 细节向第三方安全合作伙伴开放
2015-08-03: 细节向核心白帽子及相关领域专家公开
2015-08-13: 细节向普通白帽子公开
2015-08-23: 细节向实习白帽子公开
2015-09-07: 细节向公众公开

简要描述:

苏宁应用商店&易付宝钱包拒绝服务

详细说明:

第一处:
receiver:com.suning.market.core.broadcast.PackageReceiver
测试命令

adb shell am broadcast -a android.intent.action.PACKAGE_ADDED -c android.intent.category.HOME -n com.suning.market/com.suning.market.core.broadcast.PackageReceiver


该receiver中onReceive方法调getDataString未检测

捕获.PNG


第二处:
activity:com.suning.mobile.paysdk.ui.CashierPrepareActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.CashierPrepareActivity


应该是测试用的接口,苏宁易购app中也有这个,原因一样
其中发生了如下调用关系

com.suning.mobile.paysdk.ui.CashierPrepareActivity.onCreate()
com.suning.mobile.paysdk.ui.CashierPrepareActivity.c()
com.suning.mobile.paysdk.ui.c.a.a.a()
com.suning.mobile.paysdk.ui.c.a.a.b()


最后的函数b有如下未验证代码导致程序崩溃

捕获.PNG


第三处:
activity:com.suning.mobile.paysdk.ui.activity.CashierChannelActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.activity.CashierChannelActivity


这里最终引发异常的是
at com.suning.mobile.paysdk.ui.ba这个类的c方法,由于混淆比较严重不能确定出问题的具体代码,但是根据里面的代码能出现空指针的只能是其中的变量未初始化。
第四处:
activity:com.suning.mobile.paysdk.ui.QPayFirstActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.QPayFirstActivity


这里出问题的跟上面是同一个位置
第五处:
activity:com.suning.mobile.paysdk.ui.BankListActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.BankListActivity


引发异常的是com.suning.mobile.paysdk.ui.a类中的c方法,函数中有可能引发异常的地方就是本地变量未初始化。
第六处:
activity:com.suning.mobile.paysdk.ui.SMSCheckActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.SMSCheckActivity


引发异常的是com.suning.mobile.paysdk.ui.bg类的onCreate方法。其中使用了未检查的方法。

捕获.PNG


第七处:
activity:com.suning.mobile.paysdk.ui.QPayProtocolActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.QPayProtocolActivity


Activity能够成功打开,但是同时activity同时启动一个线程com.suning.mobile.paysdk.ui.ay 这个线程中出现未初始化变量导致异常
第八处:
activity:com.suning.mobile.paysdk.ui.PaySuccessActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.PaySuccessActivity


引发异常的是com.suning.mobile.paysdk.ui.aa的b方法。在界面启动时控件没有初始化,但是该方法就已经在操作控件导致空指针,从界面上观察可看出。
第九出:
activity:com.suning.mobile.paysdk.ui.EppActivateActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.ui.EppActivateActivity


EppActivateActivity的onCreate方法调用了未检查的getString方法。

捕获.PNG


第十出:
activity:com.suning.mobile.paysdk.pay.cashierpay.CashierPrepareActivity
测试命令

adb shell am start -n com.suning.mobile.epa/com.suning.mobile.paysdk.pay.cashierpay.CashierPrepareActivity


经过多层调用,异常最终发生在com.suning.mobile.paysdk.pay.cashierpay.c.a的a方法,该方法调用了未检查的getStringArray方法。

捕获.PNG


漏洞证明:

崩溃效果都一样,上一张图

捕获.PNG

修复方案:

除了注意常规的get方法和变量初始化外,在release版本中应当将测试接口全部关闭,只要在AndroidManifest.xml中删除就行了,不然一般测试用的接口都故意做的非常容易调用,被恶意程序利用更加方便。

版权声明:转载请注明来源 小手冰凉@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-06-09 16:27

厂商回复:

感谢提交,移动客户端拒绝服务漏洞一律按照200元礼品卡计算。

最新状态:

暂无