1

高危漏洞

6

中危漏洞

5

低危漏洞

6

警告

文件名 com.hisun.ipos2.1806121712.apk
上传者 edithtyy
文件大小 4.3522472381592MB
MD5 bf1654a43f897d74171d945fd3ee6b69
包名 com.hisun.ipos2
Main Activity
Min SDK 14
Target SDK 23

权限列表

# 名称 说明 提示
0 android.permission.READ_SMS 允许应用程序读取您的手机或SIM卡中存储的短信。恶意应用程序可借此读取您的机密信息。 警告
1 android.permission.SEND_SMS 允许应用程序发送短信。恶意应用程序可能会不经您的确认就发送信息,给您带来费用。 警告
2 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
3 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
4 android.permission.BLUETOOTH 允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。 注意
5 android.permission.GET_TASKS 允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的保密信息。 注意
6 android.permission.READ_CONTACTS 允许应用程序读取您手机上存储的所有联系人(地址)数据。恶意应用程序可借此将您的数据发送给其他人。 注意
7 android.permission.READ_CONTACTS 允许应用程序读取您手机上存储的所有联系人(地址)数据。恶意应用程序可借此将您的数据发送给其他人。 注意
8 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
9 android.permission.WRITE_CONTACTS 允许应用程序修改您手机上存储的联系人(地址)数据。恶意应用程序可借此清除或修改您的联系人数据。 注意
10 android.permission.WRITE_SMS 允许应用程序写入手机或SIM卡中存储的短信。恶意应用程序可借此删除您的信息。 注意
11 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
12 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
13 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
14 android.permission.INTERNET 允许程序访问网络. 提示
15 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.hisun.ipos2.activity.MainActivity
com.hisun.ipos2.activity.PaymentChooseActivity
com.hisun.ipos2.activity.MinimumDetailsPaymentActivity
com.hisun.ipos2.activity.InputPassWordActivity
com.hisun.ipos2.activity.KJInputUserInfoActivityFromMinimum
com.hisun.ipos2.activity.PaymentChoose
com.hisun.ipos2.activity.MinimumChangePaymentActivity
com.hisun.ipos2.activity.MinimumPaymentSuccessActivity
com.hisun.ipos2.activity.MinimumChooseBankCardActivity
com.hisun.ipos2.activity.AuthenticationActivity
com.hisun.ipos2.activity.AuthResultActivity
com.hisun.ipos2.activity.AuthenticationResultActivity
com.hisun.ipos2.activity.RegisterSmsActivity
com.hisun.ipos2.activity.HBInputUserInfoActivity
com.hisun.ipos2.activity.TicketsSelectActivity
com.hisun.ipos2.activity.ResetPasswordsActivity
com.hisun.ipos2.activity.ResetPwdWithCardActivity
com.hisun.ipos2.activity.ResetPwdConditionActivity
com.hisun.ipos2.activity.ResetPwdConditionCustomServiceActivity
com.hisun.ipos2.activity.ResetPwdConditionQuestionActivity
com.hisun.ipos2.activity.ResetPwdConditionKJBankActivity
com.hisun.ipos2.activity.RegisterActivity
com.hisun.ipos2.activity.LoginActivity
com.hisun.ipos2.activity.LoginInputSmsActivity
com.hisun.ipos2.activity.KJUploadSMSActivity
com.hisun.ipos2.activity.ResetPasswordsInputSmsActivity
com.hisun.ipos2.activity.PaybackActivity
com.hisun.ipos2.activity.KJShowAddBankListActivity
com.hisun.ipos2.activity.WGShowAddBankListActivity
com.hisun.ipos2.activity.KJInputMsgCodeActivity
com.hisun.ipos2.activity.KJSeeAgreementActivity
com.hisun.ipos2.activity.FlashActivity
com.hisun.ipos2.activity.WGAddBankCardActivity
com.hisun.ipos2.activity.WGInputCardInformationActivity
com.hisun.ipos2.activity.WGPaymentGetSmsActivity
com.hisun.ipos2.activity.ChooseCityActivity
com.hisun.ipos2.activity.KJAddCardInputPwdActivity
com.hisun.ipos2.activity.KJAddBankCardActivity
com.hisun.ipos2.activity.AuthBankMblNoActivity
com.hisun.ipos2.activity.KJInputCardInformationActivity
com.hisun.ipos2.activity.PayUpgradeActivity
com.hisun.ipos2.activity.PayAccountChooseActivity
com.hisun.ipos2.activity.JFCLLWebActivity
com.hisun.ipos2.activity.YLBankLimitListActivity
com.hisun.ipos2.activity.YlAddBankCardActivity
com.hisun.ipos2.activity.ReportBugActivity
com.hisun.ipos2.activity.YLInputCardInformationActivity
com.hisun.ipos2.activity.WCYMWebActivity
com.hisun.ipos2.activity.WCYMAgreementWebActivity
com.hisun.ipos2.activity.YLOrderDetailActivity
com.hisun.ipos2.activity.FAQWebActivity
com.hisun.ipos2.activity.KJInputUserInfoActivity
com.hisun.ipos2.activity.YLOrderActivity
com.hisun.ipos2.activity.IdCardUploadActivity
com.hisun.ipos2.activity.WxPaymentResulutActivity
com.hisun.ipos2.activity.RemoveCardActivity
com.hisun.ipos2.wxapi.WXPayEntryActivity
com.hisun.ipos2.activity.LeadingActivity
com.hisun.ipos2.activity.UploadResultActivity
com.hisun.ipos2.activity.RemoteActivity

com.hisun.ipos2.util.RemoteService
com.ucmobile.PluginService

android.support.v4.content.FileProvider

第三方库

# 库名 介绍
0 com.alibaba.fastjson Fast JSON Processor https://github.com/alibaba/fastjson/wiki
1 org.apache.http The Apache HttpComponents™ project is responsible for creating and maintaining a toolset of low level Java components focused on HTTP and associated protocols.
2 com.jeremyfeinstein.slidingmenu.lib A slide-out menu implementation, which allows users to navigate between views in your app.
3 com.tencent.mm.sdk 微信支付

静态扫描发现风险点

风险等级 风险名称

高危

检测到1处webview file域同源策略绕过漏洞。

位置: classes.dex
com.hisun.ipos2.activity.JFCLLWebActivity

恶意app可以利用该漏洞读取cookie等隐私信息文件。不要将不必要组件导出;如需导出,禁止使用File协议;如需使用File协议,禁止js执行:setJavaScriptEnabled(False)。

参考资料:
https://jaq.alibaba.com/blog.htm?id=62

中危

检测到3处证书弱校验漏洞。

位置: classes.dex
com.payeco.android.plugin.http.comm.SSLSocketFactoryEx$1;
com.switfpass.pay.thread.a;
com.switfpass.pay.utils.Z;

当移动App客户端使用https或ssl/tls进行通信时,如果不校验证书的可信性,将存在中间人攻击漏洞,可导致信息泄露,传输数据被篡改,甚至通过中间人劫持将原有信息替换成恶意链接或恶意代码程序,以达到远程控制等攻击意图。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考案例:
www.wooyun.org/bugs/wooyun-2014-079358

参考资料:
http://drops.wooyun.org/tips/3296
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/
https://jaq.alibaba.com/blog.htm?id=60

中危

检测到2处中间人攻击漏洞。

位置: classes.dex
com.switfpass.pay.thread.NetHelper;->o()Lorg.apache.http.impl.client.DefaultHttpClient;
com.switfpass.pay.utils.Util;->s()Lorg.apache.http.client.HttpClient;

setHostnameVerifier方法设置ALLOW_ALL_HOSTNAME_VERIFIER,直接接受任意域名,可能造成中间人攻击漏洞。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-042710
http://www.wooyun.org/bugs/wooyun-2010-052339
http://www.wooyun.org/bugs/wooyun-2016-0190773

参考资料:
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/
https://jaq.alibaba.com/blog.htm?id=60

中危

该app需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现168处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes.dex
com.switfpass.pay.service.h;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->writeFile([B Ljava/lang/String;)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.GetPrepayIdResult;->parseFrom(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.JFCLLWebActivity;->loadWebView()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.L;->run()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.b;->b(Landroid/hardware/Camera;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.OneApmAgent;->start()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.f;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->getSDCardFreeSpace()Ljava/lang/Long;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->httpGet(Ljava/lang/String;)[B==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.blueware.agent.android.BlueWare;->start(Landroid/content/Context;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.c;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.http.biz.PluginExitSession;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.g;->n()Ljava/util/List;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.mm.sdk.b.b;->f(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.a.a.a.g;->(B)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.cmpayplugin.PluginSurfaceView;->getIconPixels()[I==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.CameraManager;->getFramingRect()Landroid/graphics/Rect;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->n(Lcom/payeco/android/plugin/PayecoPluginPayIn;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->deleteFile(Ljava/io/File;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.FlashActivity;->initSuccessMethod(Lcom/hisun/ipos2/beans/resp/InitRespbean;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.i;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.KJInputCardInformationActivity;->initData()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.HomeWatcher$InnerRecevier;->onReceive(Landroid/content/Context; Landroid/content/Intent;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->unzipFile(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.az;->fail(Ljava/lang/Exception;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.c;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.d;->fail(Ljava/lang/Exception;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.am;->a(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.d;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.c;->fail(Ljava/lang/Exception;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
kankan.wheel.widget.adapters.AbstractWheelTextAdapter;->getTextView(Landroid/view/View; I)Landroid/widget/TextView;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->httpPost(Ljava/lang/String; Ljava/lang/String;)[B==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.d;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.sys.BaseActivity$1;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.jeremyfeinstein.slidingmenu.lib.c;->run()V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.YLInputCardInformationActivity$13;->callBack(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->extractThumbNail(Ljava/lang/String; I I Z)Landroid/graphics/Bitmap;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->writeFile(Ljava/io/RandomAccessFile; [B I)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.PayPlugin$GetAccessTokenTask;->onPostExecute(Lcom/switfpass/pay/service/GetAccessTokenResult;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->readFromFile(Ljava/lang/String; I I)[B==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->readFile(Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.r;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.handle.PayHandlerManager;->notifyMessage(I Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.j;->onClick(Landroid/view/View;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.thread.NetHelper;->httpsPost(Ljava/lang/String; Lorg/json/JSONObject; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Lcom/switfpass/pay/thread/RequestResult;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.mm.sdk.b.b;->d(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.c;->()V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.mm.sdk.b.b;->e(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.YLInputCardInformationActivity;->initData()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.e;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.WCYMWebActivity$3;->onItemClick(Landroid/widget/AdapterView; Landroid/view/View; I J)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.cmpayplugin.PluginSurfaceView;->getIconWidth()I==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.PayResultActivity;->onCreate(Landroid/os/Bundle;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.e;->c()Ljava/util/Map;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->getLocalFileSize(Ljava/lang/String;)J==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.p;->onSucceed(Ljava/lang/Object;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.module.anr.a;->sendAnrData()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.blueware.agent.android.util.b;->exceptionToNetworkFailure(Ljava/lang/Exception;)Lcom/blueware/agent/android/util/b;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.k;->onClick(Landroid/view/View;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.az;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.an;->(Landroid/app/Activity; Landroid/view/View; Ljava/lang/String; Lorg/apache/http/client/CookieStore;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.blueware.agent.android.h;->run()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->computeScroll()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.as;->onClick(Landroid/view/View;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.blueware.agent.android.util.TestAnrReceiver;->onReceive(Landroid/content/Context; Landroid/content/Intent;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->returnInitState()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.decoding.PayCaptureActivityHandler;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->readFromFile(Ljava/lang/String; I I)[B==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.tools.h;->a(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.WGInputCardInformationActivity;->initData()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.WCYMWebActivity;->payMent(Ljava/lang/String; Lcom/hisun/ipos2/beans/BindBankBean;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->doPay(Landroid/app/Activity; Ljava/util/Map; Lcom/payeco/android/plugin/PayecoPluginPayCallBack;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->oldUnzipFile(Ljava/io/File; Ljava/lang/String;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.ucutils.IPOSBinder$3;->run()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.PaySDKCaptureActivity;->onResume()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.p;->(Lcom/payeco/android/plugin/view/a; Landroid/app/Activity; I Landroid/app/DatePickerDialog$OnDateSetListener; I I I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.a.a.a.b;->process(Lorg/apache/http/HttpRequest; Lorg/apache/http/protocol/HttpContext;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->createFile(Ljava/lang/String; Ljava/lang/String;)Ljava/io/RandomAccessFile;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->write2SDFromInput(Ljava/lang/String; Ljava/lang/String; Ljava/io/InputStream;)Ljava/io/RandomAccessFile;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.view.PassWordEditText;->onDraw(Landroid/graphics/Canvas;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.ai;->fail(Ljava/lang/Exception;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.ai;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->onTouchEvent(Landroid/view/MotionEvent;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->doPay(Landroid/app/Activity; Ljava/util/Map; Lcom/payeco/android/plugin/PayecoPluginPayCallBack;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.a;->run()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.module.anr.common.f;->onInterrupted(Ljava/lang/InterruptedException;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.cmpayplugin.PluginSurfaceView;->getIconHeight()I==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.tools.h;->a()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;->fitSystemWindows(Landroid/graphics/Rect;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.t;->(Landroid/app/Activity; Landroid/view/View; Ljava/lang/String; Lorg/apache/http/client/CookieStore;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.logs.b;->verbose(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->delExistFile(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.c;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->readFromFile(Ljava/lang/String; I I)[B==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.a.a.a.g;->a(Landroid/os/Message;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.decoding.b;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->refresh()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.i;->checkServerTrusted([Ljava/security/cert/X509Certificate; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.o;->showDialog(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.a.a.a.g;->a(Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.cmpayplugin.PayResultReceiver;->onReceive(Landroid/content/Context; Landroid/content/Intent;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.logs.b;->info(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.b;->b(Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.PayPlugin$GetAccessTokenTask;->doInBackground([Ljava/lang/Void;)Lcom/switfpass/pay/service/GetAccessTokenResult;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.e;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->loadProperties(Landroid/content/Context; Ljava/lang/String;)Ljava/util/HashMap;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileHelper;->writeFile(Ljava/io/RandomAccessFile; [B)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.d;->onPreviewFrame([B Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.f;->fail(Ljava/lang/Exception;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.b;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.f;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.j;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.d;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.FlashActivity;->gotoPage(Lcom/hisun/ipos2/beans/resp/InitRespbean;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.FlashActivity;->initData()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.http.biz.PluginInit;->getHttpParams()Ljava/util/List;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->extractThumbNail(Ljava/lang/String; I I Z)Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->a(Landroid/app/Activity; Ljava/lang/String; Ljava/lang/String; Ljava/lang/Throwable;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Rsa;->doCheck(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.i;->checkClientTrusted([Ljava/security/cert/X509Certificate; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.Result;->checkSign(Ljava/lang/String;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.GetAccessTokenResult;->parseFrom(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.ad;->onFocusChange(Landroid/view/View; Z)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.b;->a(Ljava/lang/CharSequence; Landroid/graphics/Point;)Landroid/graphics/Point;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.thread.NetHelper;->httpsPost(Ljava/lang/String; Lorg/json/JSONObject; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Lcom/switfpass/pay/thread/RequestResult;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->deleteFile(Ljava/io/File;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.f;->success(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.z;->onClick(Landroid/view/View;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->getSDCardFreeSpace()Ljava/lang/Long;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.RemoteService;->onDestroy()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.h;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.YLInputCardInformationActivity;->onDone(Lcom/hisun/ipos2/sys/ResponseBean;)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->setRefreshText(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.Util;->extractThumbNail(Ljava/lang/String; I I Z)Landroid/graphics/Bitmap;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.k;->a(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.thread.NetHelper;->HttpPost(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->a(Ljava/lang/String; Ljava/lang/String; Ljava/lang/Exception;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.r;->fail(Ljava/lang/Exception;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.j;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.j;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.b;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.YLInputCardInformationActivity;->payMentForYL(Lcom/hisun/ipos2/beans/resp/GWPayResp;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.b;->a(Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.JFCLLWebActivity;->initData()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.i;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.a.a.a.g;->a(Landroid/os/Message;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.logs.b;->debug(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.logs.b;->error(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->deleteDir(Ljava/io/File;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.util.FileUtils;->unzipOdpFile(Landroid/content/Context; Ljava/lang/String;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind;->scrollBehindTo(Landroid/view/View; I I)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.module.anr.common.l;->run()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.zxing.camera.a;->onAutoFocus(Z Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.activity.c;->onClick(Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.utils.PayDialogInfo;->a(Lcom/switfpass/pay/utils/PayDialogInfo; Lcom/switfpass/pay/bean/OrderBena; Lcom/switfpass/pay/bean/RequestMsg;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->finishRefresh()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.module.events.OneAPMEventAPI;->a(Ljava/lang/String; Lorg/json/JSONObject;)Lorg/json/JSONObject;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.http.biz.SendSms;->()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.oneapm.agent.android.core.utils.logs.b;->warning(Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.ucmobile.cmpayplugin.PluginSurfaceView;->getIconRowBytes()I==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.leadeon.lib.view.scrollrefresh.NLPullRefreshView;->fling()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.PayecoPluginPayIn;->a(Lcom/payeco/android/plugin/PayecoPluginPayIn; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.service.b;->m()Lcom/switfpass/pay/bean/OrderBena;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.switfpass.pay.thread.NetHelper;->HttpPost(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.payeco.android.plugin.view.am;->a()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.hisun.ipos2.activity.JFCLLWebActivity$WebAppInterface;->pay(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I

中危

检测到4个WebView远程执行漏洞。

位置: classes.dex
com.blueware.agent.android.util.performance.c;->initJavascript(Ljava.lang.Object; Ljava.lang.String;)V
com.blueware.agent.android.util.performance.b;->initJavascript(Ljava.lang.Object; Ljava.lang.String;)V
com.hisun.ipos2.activity.JFCLLWebActivity;->initData()V
com.switfpass.pay.activity.QQWapPayWebView;->onCreate(Landroid.os.Bundle;)V

Android API < 17之前版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用addJavaScriptInterface方法,攻击者可以通过Java反射利用该漏洞执行任意Java对象的方法,导致远程代码执行安全漏洞。
(1)API等于高于17的Android系统。出于安全考虑,为了防止Java层的函数被随意调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。
(2)API等于高于17的Android系统。建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,如果一定要使用该接口,建议使用证书校验。
(3)使用removeJavascriptInterface移除Android系统内部的默认内置接口:searchBoxJavaBridge_、accessibility、accessibilityTraversal。

参考案例:
www.wooyun.org/bugs/wooyun-2015-0140708
www.wooyun.org/bugs/wooyun-2016-0188252
http://drops.wooyun.org/papers/548

参考资料:
http://jaq.alibaba.com/blog.htm?id=48
http://blog.nsfocus.net/android-webview-remote-code-execution-vulnerability-analysis
https://developer.android.com/reference/android/webkit/WebView.html

中危

检测到66条敏感明文信息,建议移除。

位置: classes.dex
'88888@qq.com' used in: Lcom/hisun/ipos2/activity/RemoteActivity;->initData()V
'http://211.138.236.210:28700/ccaweb/OCLIIPS3/702000.dow?plat=3&ua=TEMP_UA01&ver=' used in: Lcom/ucmobile/ucutils/IPOSHelper;->getRequestUrl(Ljava/lang/String;)Ljava/lang/String;
'http://huangjun.dev.swiftpass.cn/' used in: Lcom/switfpass/pay/MainApplication;->()V
'http://huangjun.dev.swiftpass.cn/pay/gateway' used in: Lcom/switfpass/pay/activity/e;->c()Ljava/util/Map;
'http://mobile.oneapm.com/services/ip?ip=myip' used in: Lcom/oneapm/agent/android/core/utils/k;->getLocationString()Ljava/lang/String;
'http://schemas.android.com/apk/res/android' used in: Landroid/support/graphics/drawable/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'http://www.cmpay.com/info/wap/client/menhu/payhelp_faq.html ' used in: Lcom/hisun/ipos2/sys/Address;->()V
'http://www.w3.org/2001/XMLSchema' used in: Lorg/dom4j/datatype/SchemaParser;->()V
'http://www.w3.org/2001/XMLSchema-instance' used in: Lorg/dom4j/datatype/DatatypeDocumentFactory;->()V
'http://www.w3.org/XML/1998/namespace' used in: Lorg/jaxen/dom/DocumentNavigator;->getNamespaceAxisIterator(Ljava/lang/Object;)Ljava/util/Iterator;
'http://www.w3.org/XML/1998/namespace' used in: Lorg/dom4j/Namespace;->()V
'http://www.w3.org/XML/1998/namespace' used in: Lorg/jaxen/exml/DocumentNavigator;->getNamespaceAxisIterator(Ljava/lang/Object;)Ljava/util/Iterator;
'http://xml.org/sax/features/external-general-entities' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/features/external-parameter-entities' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/features/namespace-prefixes' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/features/namespace-prefixes' used in: Lorg/dom4j/io/SAXWriter;->()V
'http://xml.org/sax/features/namespace-prefixes' used in: Lorg/dom4j/io/SAXValidator;->configureReader()V
'http://xml.org/sax/features/namespace-prefixes' used in: Lorg/dom4j/io/aelfred/SAXDriver;->setFeature(Ljava/lang/String; Z)V
'http://xml.org/sax/features/namespace-prefixes' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/features/namespaces' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/features/namespaces' used in: Lorg/dom4j/io/SAXWriter;->()V
'http://xml.org/sax/features/namespaces' used in: Lorg/dom4j/io/SAXValidator;->configureReader()V
'http://xml.org/sax/features/namespaces' used in: Lorg/dom4j/io/aelfred/SAXDriver;->setFeature(Ljava/lang/String; Z)V
'http://xml.org/sax/features/namespaces' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/features/string-interning' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/features/string-interning' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/features/validation' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/features/validation' used in: Lorg/dom4j/io/SAXValidator;->configureReader()V
'http://xml.org/sax/features/validation' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getFeature(Ljava/lang/String;)Z
'http://xml.org/sax/handlers/LexicalHandler' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/handlers/LexicalHandler' used in: Lorg/dom4j/io/SAXWriter;->()V
'http://xml.org/sax/handlers/LexicalHandler' used in: Lorg/dom4j/io/XMLWriter;->()V
'http://xml.org/sax/properties/declaration-handler' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/properties/declaration-handler' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getProperty(Ljava/lang/String;)Ljava/lang/Object;
'http://xml.org/sax/properties/declaration-handler' used in: Lorg/dom4j/io/aelfred/SAXDriver;->setProperty(Ljava/lang/String; Ljava/lang/Object;)V
'http://xml.org/sax/properties/lexical-handler' used in: Lorg/dom4j/io/SAXReader;->configureReader(Lorg/xml/sax/XMLReader; Lorg/xml/sax/helpers/DefaultHandler;)V
'http://xml.org/sax/properties/lexical-handler' used in: Lorg/dom4j/io/aelfred/SAXDriver;->getProperty(Ljava/lang/String;)Ljava/lang/Object;
'http://xml.org/sax/properties/lexical-handler' used in: Lorg/dom4j/io/SAXWriter;->()V
'http://xml.org/sax/properties/lexical-handler' used in: Lorg/dom4j/io/XMLWriter;->()V
'http://xml.org/sax/properties/lexical-handler' used in: Lorg/dom4j/io/aelfred/SAXDriver;->setProperty(Ljava/lang/String; Ljava/lang/Object;)V
'http://zhifu.dev.swiftpass.cn/spay/notify' used in: Lcom/switfpass/pay/activity/PayPlugin;->a(Lcom/switfpass/pay/activity/PayPlugin;)Ljava/lang/String;
'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' used in: Lcom/switfpass/pay/activity/PayPlugin$GetAccessTokenTask;->doInBackground([Ljava/lang/Void;)Lcom/switfpass/pay/service/GetAccessTokenResult;
'https://cashier.cmpay.com/info/wap/xy/kjxy/hbzcxy.html' used in: Lcom/hisun/ipos2/activity/KJSeeAgreementActivity;->initData()V
'https://clientaccess.10086.cn:9043' used in: Lcom/leadeon/sdk/utils/Urls;->()V
'https://mca.cmpay.com/ccaweb/' used in: Lcom/hisun/ipos2/sys/Address;->()V
'https://mca.cmpay.com/ccaweb/images/bankicon/' used in: Lcom/hisun/ipos2/activity/MinimumChangePaymentActivity;->getImgUrlForBankLogo(Ljava/lang/String;)Ljava/lang/String;
'https://mca.cmpay.com/ccaweb/images/bankicon/' used in: Lcom/hisun/ipos2/parser/BindBankListParser;->parser(Ljava/lang/String;)Lcom/hisun/ipos2/sys/ResponseBean;
'https://mca.cmpay.com:28710/upload/v0' used in: Lcom/hisun/ipos2/activity/ReportBugActivity;->()V
'https://mca.cmpay.com:28710/upload/v0' used in: Lcom/hisun/ipos2/activity/IdCardUploadActivity;->()V
'https://p.10086.cn' used in: Lcom/hisun/ipos2/activity/JFCLLWebActivity;->loadWebView()V
'https://p.10086.cn/touchpad/common/touchpad_zfxy.html' used in: Lcom/hisun/ipos2/activity/KJInputUserInfoActivityFromMinimum$2;->onClick(Landroid/view/View;)V
'https://p.10086.cn/touchpad/common/touchpad_zfxy.html' used in: Lcom/hisun/ipos2/activity/KJInputUserInfoActivity$2;->onClick(Landroid/view/View;)V
'https://p.10086.cn/touchpad/common/touchpad_zfxy.html' used in: Lcom/hisun/ipos2/activity/KJInputUserInfoActivityFromMinimum$3;->onClick(Landroid/view/View;)V
'https://p.10086.cn/touchpad/common/touchpad_zfxy.html' used in: Lcom/hisun/ipos2/activity/KJInputUserInfoActivity$3;->onClick(Landroid/view/View;)V
'https://pay.swiftpass.cn/' used in: Lcom/switfpass/pay/MainApplication;->()V
'https://www.cmpay.com/info/wap/client/hjbxy/hjbfwxy.html' used in: Lcom/hisun/ipos2/activity/KJSeeAgreementActivity;->initData()V
'https://www.cmpay.com/info/wap/xy/bankPayAgree.html' used in: Lcom/hisun/ipos2/activity/WCYMAgreementWebActivity;->loadWebView()V
'https://www.cmpay.com/info/wap/xy/kjxy/hxyhxy.html' used in: Lcom/hisun/ipos2/activity/KJSeeAgreementActivity;->initData()V
'https://www.cmpay.com/info/wap/xy/kjxy/zhshyhxykxy.html' used in: Lcom/hisun/ipos2/activity/KJSeeAgreementActivity;->initData()V
'javascript:javascript: (function() {' used in: Lcom/blueware/agent/android/util/o;->getJsStr()Ljava/lang/String;
"javascript:setName('" used in: Lcom/hisun/ipos2/activity/WCYMWebActivity$WebAppInterface;->getContactNameByPhoneNumber(Ljava/lang/String;)V
"javascript:setName('" used in: Lcom/hisun/ipos2/activity/JFCLLWebActivity$WebAppInterface;->getContactNameByPhoneNumber(Ljava/lang/String;)V
"javascript:setPhoneNumAndName('" used in: Lcom/hisun/ipos2/activity/JFCLLWebActivity;->onActivityResult(I I Landroid/content/Intent;)V
"javascript:setPhoneNumAndName('','')" used in: Lcom/hisun/ipos2/activity/JFCLLWebActivity;->onActivityResult(I I Landroid/content/Intent;)V
'javascript:window._OneAPMBridge.init({' used in: Lcom/blueware/agent/android/util/o;->getInitStr(Ljava/lang/String; Z Z Z)Ljava/lang/String;
'javascript:window._OneAPMBridge.start();' used in: Lcom/blueware/agent/android/util/performance/d;->run()V

中危

检测到6处setSavePassword密码明文存储漏洞。

位置: classes.dex
com.hisun.ipos2.activity.WCYMAgreementWebActivity;
com.hisun.ipos2.activity.FAQWebActivity;
com.hisun.ipos2.activity.JFCLLWebActivity;
com.hisun.ipos2.activity.YLOrderDetailActivity;
com.switfpass.pay.activity.QQWapPayWebView;
com.blueware.agent.android.util.performance.b;

webview的保存密码功能默认设置为true。Webview会明文保存网站上的密码到本地私有文件”databases/webview.db”中。对于可以被root的系统环境或者配合其他漏洞(如webview的同源绕过漏洞),攻击者可以获取到用户密码。
建议:显示设置webView.getSetting().setSavePassword(false)。

参考案例:
www.wooyun.org/bugs/wooyun-2010-021420
www.wooyun.org/bugs/wooyun-2013-020246

参考资料:
http://wolfeye.baidu.com/blog/
www.claudxiao.net/2013/03/android-webview-cache/

低危

检测到6个WebView系统隐藏接口未移除。

位置: classes.dex
com.blueware.agent.android.util.performance.b;->initSetting()V
com.hisun.ipos2.activity.JFCLLWebActivity;->initData()V
com.hisun.ipos2.activity.YLOrderDetailActivity;->loadWeb()V
com.switfpass.pay.activity.QQWapPayWebView;->onCreate(Landroid.os.Bundle;)V
com.hisun.ipos2.activity.FAQWebActivity;->initData()V
com.hisun.ipos2.activity.WCYMAgreementWebActivity;->initData()V

android webview组件包含3个隐藏的系统接口:searchBoxJavaBridge_,accessibilityTraversal以及accessibility,恶意程序可以利用它们实现远程代码执行。
如果使用了WebView,那么使用WebView.removeJavascriptInterface(String name) API,显示的移除searchBoxJavaBridge_、accessibility、accessibilityTraversal这三个接口。

参考资料:
http://wolfeye.baidu.com/blog/android-webview/
http://blog.csdn.net/u013107656/article/details/51729398
http://wolfeye.baidu.com/blog/android-webview-cve-2014-7224/

低危

检测到2处AES/DES弱加密风险。

位置: classes.dex
Lcom/payeco/android/plugin/a/g;->b([B [B)[B
Lcom/payeco/android/plugin/a/g;->a([B [B)[B

使用AES/DES/DESede加密算法时,如果使用ECB模式,容易受到攻击风险,造成信息泄露。建议在使用AES/DES/DESede加密算法时,应显示指定使用CBC或CFB加密模式

参考资料:
http://blog.csdn.net/u013107656/article/details/51997957
https://developer.android.com/reference/javax/crypto/Cipher.html
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html
http://wolfeye.baidu.com/blog/weak-encryption/
http://www.freebuf.com/articles/terminal/99868.html

低危

非debug包,需要通过打包平台proguard脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现29处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
org.jaxen.pattern.PatternHandler;
org.dom4j.io.DOMReader;
com.werken.saxpath.XPathReaderTest;
org.dom4j.io.SAXHelper;
org.dom4j.DocumentFactory;
org.dom4j.io.DOMWriter;
org.dom4j.datatype.DatatypeDocumentFactory;
org.apaches.commons.codec.language.bm.Rule;
com.ucmobile.cmpayplugin.PayResultReceiver;
org.apaches.commons.codec.language.bm.Lang;
com.blueware.agent.android.instrumentation.io.a;
org.dom4j.tree.NamespaceStack;
com.oneapm.agent.android.core.utils.logs.c;
com.hisun.ipos2.activity.KJInputUserInfoActivity;
com.hisun.ipos2.sys.Md5;
org.dom4j.dom.DOMNodeHelper;
org.dom4j.bean.BeanDocumentFactory;
com.greenpoint.android.jni.MainActivity;
com.hisun.ipos2.activity.KJInputUserInfoActivityFromMinimum;
com.leadeon.sdk.view.UserLoginWindow;
org.dom4j.swing.XMLTableColumnDefinition;
org.dom4j.datatype.SchemaParser;
com.blueware.agent.android.util.u;
org.jaxen.FunctionCallException;
org.dom4j.rule.RuleManager;
com.leadeon.lib.tools.h;
org.dom4j.DocumentException;
org.dom4j.swing.XMLTableDefinition;
org.dom4j.swing.XMLTableModel;

低危

检测到1处主机名弱校验检测漏洞。

位置: classes.dex
com.hisun.ipos2.sys.NetworkManager$1;->verify(Ljava.lang.String; Ljavax.net.ssl.SSLSession;)Z

自定义HostnameVerifier类,却不实现其verify方法验证域名直接返回true,直接接受任意域名。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考资料:
http://drops.wooyun.org/tips/3296
https://www.91ri.org/12534.html

低危

检测到6处地方在自定义实现的WebViewClient类在onReceivedSslError调用proceed()方法。

位置: classes.dex
com.hisun.ipos2.activity.FAQWebActivity$2;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V
com.hisun.ipos2.activity.JFCLLWebActivity$1;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V
com.hisun.ipos2.activity.KJSeeAgreementActivity$2;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V
com.hisun.ipos2.activity.WCYMAgreementWebActivity$2;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V
com.hisun.ipos2.activity.YLOrderDetailActivity$3;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V
com.switfpass.pay.activity.G;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V

Android WebView组件加载网页发生证书认证错误时,会调用WebViewClient类的onReceivedSslError方法,如果该方法实现调用了handler.proceed()来忽略该证书错误,则会受到中间人攻击的威胁,可能导致隐私泄露。建议:
当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0109266

参考资料:
https://jaq.alibaba.com/blog.htm?id=60
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/

警告

检测到4处addFlags使用Intent.FLAG_ACTIVITY_NEW_TASK。

位置: classes.dex
com.switfpass.pay.activity.PaySDKCaptureActivity;->startActivity
com.ucmobile.ucutils.IPOSBase$2;->onClick
com.hisun.ipos2.dialog.UpdateDialog;->installIpos
com.tencent.mm.sdk.a.a;->a

APP创建Intent传递数据到其他Activity,如果创建的Activity不是在同一个Task中打开,就很可能被其他的Activity劫持读取到Intent内容,跨Task的Activity通过Intent传递敏感信息是不安全的。建议:
尽量避免使用包含FLAG_ACTIVITY_NEW_TASK标志的Intent来传递敏感信息。

参考资料:
http://wolfeye.baidu.com/blog/intent-data-leak

警告

检测到9个导出的组件接收其他app的消息,这些组件会被其他app引用并导致dos攻击。

activity com.hisun.ipos2.activity.FlashActivity
activity com.hisun.ipos2.activity.JFCLLWebActivity
activity com.hisun.ipos2.activity.WCYMWebActivity
activity com.hisun.ipos2.wxapi.WXPayEntryActivity
activity com.hisun.ipos2.activity.LeadingActivity
activity com.hisun.ipos2.activity.UploadResultActivity
activity com.hisun.ipos2.activity.RemoteActivity
service com.hisun.ipos2.util.RemoteService
service com.ucmobile.PluginService

建议:
(1)最小化组件暴露。对不会参与跨应用调用的组件建议显示添加android:exported="false"属性。
(2)设置组件访问权限。对provider设置权限,同时将权限的protectionLevel设置为"signature"或"signatureOrSystem"。
(3)组件传输数据验证。对组件之间,特别是跨应用的组件之间的数据传入与返回做验证和增加异常处理,防止恶意调试数据传入,更要防止敏感数据返回。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0169746
http://www.wooyun.org/bugs/wooyun-2010-0104965

参考资料:
http://jaq.alibaba.com/blog.htm?spm=0.0.0.0.Wz4OeC&id=55
《Android安全技术解密与防范》

警告

检测到2个导出的隐式Service组件。
service com.hisun.ipos2.util.RemoteService
service com.ucmobile.PluginService

建议:为了确保应用的安全性,启动Service时,请始终使用显式Intent,且不要为服务声明Intent过滤器。使用隐式Intent启动服务存在安全隐患,因为您无法确定哪些服务将响应Intent,且用户无法看到哪些服务已启动。从Android 5.0(API 级别 21)开始,如果使用隐式 Intent 调用 bindService(),系统会抛出异常。

参考资料:
https://developer.android.com/guide/components/intents-filters.html#Types

警告

检测到5潜在的XSS漏洞。

位置: classes.dex
com.blueware.agent.android.util.performance.b;->initSetting()V
com.hisun.ipos2.activity.FAQWebActivity;->initData()V
com.hisun.ipos2.activity.WCYMAgreementWebActivity;->initData()V
com.hisun.ipos2.activity.YLOrderDetailActivity;->loadWeb()V
com.switfpass.pay.activity.QQWapPayWebView;->onCreate(Landroid.os.Bundle;)V

允许WebView执行JavaScript(setJavaScriptEnabled),有可能导致XSS攻击。建议尽量避免使用。
(1)API等于高高于17的Android系统。出于安全考虑,为了防止Java层的函数被随意调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。
(2)API等于高高于17的Android系统。建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,如果一定要使用该接口,建议使用证书校验。
u(3)使用removeJavascriptInterface移除Android系统内部的默认内置接口:searchBoxJavaBridge_、accessibility、accessibilityTraversal。

参考案例:
www.wooyun.org/bugs/wooyun-2015-0140708
www.wooyun.org/bugs/wooyun-2016-0188252

参考资料:
http://jaq.alibaba.com/blog.htm?id=48
http://blog.nsfocus.net/android-webview-remote-code-execution-vulnerability-analysis

警告

检测到1处provider的grantUriPermissions设置为true。
android.support.v4.content.FileProvider


grant-uri-permission若设置为true,可被其它程序员通过uri访问到content provider的内容,容易造成信息泄露。

参考资料:
https://security.tencent.com/index.php/blog/msg/6

警告

检测到3处使用了加解密算法。密钥处理不当可能会导致信息泄露。

位置: classes.dex
com.payeco.android.plugin.a.g;->b([B [B)[B
com.hisun.ipos2.util.Global;->getHmacSigned(Ljava.lang.String;)Ljava.lang.String;
com.payeco.android.plugin.a.g;->a([B [B)[B

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0105766
http://www.wooyun.org/bugs/wooyun-2015-0162907
http://www.wooyun.org/bugs/wooyun-2010-0187287

参考资料:
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html


动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

检测到?处XSS漏洞。
开发中...

警告

检测到?处XSS跨站漏洞。
开发中...

应用证书