安全测试资料分享

app面临问题,木马,病毒,篡改,破解,账号窃取,信息劫持。

app安全测评思路:代码审计,配置验证,人工验证

代码审计:AndroidMainfest.xml配置文件中权限选项
配置验证:对常见的安全问题进行配置验证,比如通过模拟攻击方式验证app存在问题
人工验证:对常见的问题采取简单的人工验证方式,比如sql注入

数据篡改:通过抓取的数据包,对关键信息进行修改并提交,如果修改后的信息能正常进行业务操作,说明存在漏洞

WebView漏洞:应用中存在WebView漏洞,没有对注册JAVA类的方法调用进行限制,导致攻击者可以利用反射机制调用未注册的其他任何JAVA类,最终导致javascript代码对设备进行任意攻击。

解决方案:通过在Java的远程方法上面声明一个@JavascriptInterface 来代替addjavascriptInterface;

在使用js2java的bridge时候,需要对每个传入的参数进行验证,屏蔽攻击代码;

关键数据明文传输:应用程序在登录过程中,使用http协议明文传输用户名和密码,并未对用户名和密码进行加密处理。通过监控网络数据就可以截获到用户名和用户密码数据,
导致用户信息泄露,给用户带来安全风险。

解决方案:在传输敏感信息时应对敏感信息进行加密处理。


任意账号注册:使用手机号133*****887注册某个APP,获取验证码46908;在确认提交时,拦截请求,修改注册的手机号码,即可注册任意账号,这里修改为1338*****678(任意手机号)分别使用133*****887和133*****678(任意手机号)登录,均可以通过验证登录,看到最终结果。

解决方案:注册过程最后的确认提交时,服务器应验证提交的账号是否是下发验证码的手机号。


登录界面可被钓鱼劫持:应用存在钓鱼劫持风险。应用程序没有做防钓鱼劫持措施,通过劫持应用程序的登录界面,可以获取用户的账号和密码,可能导致用户账号信息的泄露。

整改建议:应用程序自身通过获取栈顶activity,判断系统当前运行的程序,一旦发现应用切换(可能被劫持),给予用户提示以防范钓鱼程序的欺诈。Android代码通过获取栈顶activity,当涉及敏感activity(登录、交易等)切换时,判断当前是否仍留在原程序,若不是则通过Toast给予用户提示。代码(ActivityManager.getSystemService来获取topActivity) 或者使用HTML5架构或android+HTML5混合开发,实现登陆、支付等关键页面,降低被劫持的风险。

自动化资料  视频    链接:https://pan.baidu.com/s/1yzDBYy7i1qoB43ynu3BNBw 密码:t8m0



猜你喜欢

转载自www.cnblogs.com/lnln/p/9120317.html