Activity绕过
-- | -- |
---|---|
缺陷描述 | 直接调用activity可以绕过一些机制。 |
分析方案 | Drozer绕过activity进行登录(方法详见下测试方法说明) |
对应威胁 | 设计缺陷 |
风险等级 | 中风险 |
后果 | 绕过原有机制,进行操作。 |
修复方案 | 开发阶段防护:将不必要的导出的组件设置为不导出,即exported的属性为false;对权限进行控制 |
测试方法:
- 使用drozer分析apk攻击面,查看暴露activity
- Droze命令:adb forward tcp:31415 tcp:31415(adb连接手机Agent端口)
- drozer.bat console connect (连接至手机或者模拟器,连接成功显示Android标志图)
- run app.package.attacksurface “XXX包名” 分析应用组件暴露面
- 如存在activity组件暴露,查看activity暴露组件
- run app.activity.info -a “XXX包名”
- Drozer越过启动activity
- run app.activity.start --component “包名” “activity名”
- 检查应用界面,是否越过前置activity启动(如APP越过启动成功,则漏洞判断成立)
Cookies信息明文数据保存
-- | -- |
---|---|
缺陷描述 | 客户端程序登录后,cookie信息明文存储在本地数据库中。 |
分析方案 | Fiddler抓包(方法详见下测试方法说明) |
对应威胁 | 敏感信息泄露 |
风险等级 | 高风险 |
后果 | 恶意程序通过系统漏洞提权,窃取敏感信息。 |
修复方案 | 采用对Cookies数据库进行加密保护。(第三方服务可选邦邦,爱加密) |
测试方法:
- 配置fiddler抓包客户登录时 cookies数据(url中标注有jsessionid)
- 获取jsessionid
- 导出应用数据库,查看cookies数据
- Adb pull /data/data/”XX包名”/databases/* E:/”指定导出文件夹” 或 使用DDMS file explorer->data->data,然后找到你运行过的项目导出
- 使用sqlite expert查看数据库-- file->open database(也可使用android的sdk中自带sqlite3.exe进行查看
- 比对cookies数据存储jsessionid值,判断同抓包数据是否一致(如比对一致,则漏洞判断成立)