目录
内容是本人学习笔记整理-7-2019/04/19 20:00-22:00
定位:初级测试人员1-2年,功能测试(黑盒测试)
安全风险分析
木马 | 病毒 | 篡改 | 破解 | 钓鱼 |
二次打包 | 账号窃取 | 资源篡改 | 广告植入 | 信息劫持 |
客户端面临的主要风险
客户端 | 数据传输 | 服务端 |
|
|
|
app的安全主要从:①客户端安全②通信安全③服务端的安全
测试开展---反编译
- 我们一般想要反编译一个apk,无非就是想获得三样东西:图片资源、XML资源、代码资源。
一、图片资源获取
- apk->把后缀名改成zip->在res目录->获取到我们需要的图片
二、XML资源获取
- 打开的zip文件->.xml的文件->尝试打开->乱码或者是空白
- 借助一个jar包 axmlprinter2.jar,(Baidu)xml放在同级目录下
- 进入CMD->找到这个目录,如:java -jar AXMLPrinter2.jar xxxxx.xml>xxxxx.txt
三、代码资源获取
- 一般情况下能正确反编译出来的只有未加密或者没有混淆的代码
- 解决:dex2jar.rar和jd-gui.zip这两个工具。
- dex2jar主要是用来把之前zip解压出来的classes.dex转成jar包的
- jd-gui主要是用来打开Jar包的
dex2jar用法:
- 把dex2jar解压后,然后将之前zip的classes.dex放到dex2jar目录下,
- 注意,必须要跟dex2jar.bat是同级目录。
- 然后又要用到cmd,cd到dex2jar目录下,打命令行dex2jar.bat classes.dex
- 然后你的目录里会多一个jar包,classes-dex2jar.jar的文件
- 然后在用jd-gui把jar打开,最终apk的代码就这样被剥离出来了。
开发:采用加密和混淆技术达到反编译保护。
测试开展--二次打包
- “Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都很正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。
- 利用二次打包工具对APP进行二次打包,看APP能否成功打包运行,如果重新打包后无法运行程序说明有防二次打包安全措施。
开发:采用签名的方法进行保护:获取二次打包后APK的签名与正确的APK签名做对比,判断APK程序是否进行过二次打包。
测试开展--数据安全
密码存储原理:
- WebView默认开启密码保存功能:mWebView.setSavePassword(true),开启后,在用户输入密码是,会弹出提示框:询问用户是否保存密码;如果选择“是”,密码会被明文保存到/data/date/com.package.name/databases/webview.db中,这样就有被盗取密码的危险。
检测方法
- 方法1、用户输入密码时看是否有弹出提示框,询问用户是否保存密码,如果有询问则表示存在漏洞,否则不存在。
- 方法2、检查代码中setSavePassword的值是否为false。
开发:WebView.setSavePassword(false)
Logcat日志
- 通过usb连接手机,然后使用adb logcat -v time >d:\xx 的方式获取logcat信息。
- 不要把账号密码等敏感信息保存在本地明文存储,如果一定要存储敏感信息务必进行加密存储重要信息。
- 敏感数据明文存储于Sdcard。
- 非系统级的app只允许在Android/data/<package-name>/目录下操作。因此,每个app的文件读写权限被独立开来,不能互相访问。