背景

AllowBackup漏洞,顾名思义,就是允许用户对应用的数据进行备份。在默认情况下,AndroidManife.xml文件上的allowBackup标志是True,意味着,如果开发者不设置该标志位,应用会默认被允许备份,备份的内容包括应用的所有数据,例如账户密码等。

用户通过adb调试,不需要手机root,就可以进行备份。用户正常使用这一功能并没有什么危害,但是站在攻击者的角度来说,只要能触碰受害者的设备,并且接上USB进行adb调试,那么就可以获得用户的数据了。

检测

前期准备

  • 不知情小白的设备A
  • 设备A接上有adb调试工具的电脑,并开启USB调试
  • 开启命令行输入:

    1
    2
    3
    adb backup -nosystem -noshared -apk -f <包名>.ab <包名>
    #-nosystem表示不备份系统应用 -noshared表示不备份应用存储在SD中的数据 -apk表示备份应用APK安装
    -f表示备份的.ab文件路径和文件名最后是要备份应用的packageName
  • 在设备A上点击备份

  • 断开设备A,连入攻击者设备B,在命令行输入:
    1
    adb restore <包名>.ab

在设备B上点击恢复

在本科做毕设的时候就接触到TCP代理这东西,当时需要使用代理来对发送和收到的数据做修改,同时使用代理也让我对HTTP协议有了更深的了解。
下面讲一下用python做一个tcp代理的基本原理

Read More

nc即netcat,是网络界的瑞士军刀。当入侵了一个服务器之后,发现nc工具已经被系统管理员移除之后,可以自己制作一个简单的客户端和服务器端来实现①上传文件②执行命令③开启一个新的命令行shell等几个功能。

Read More

这几天团队打算一起学习Android App漏洞挖掘方面的知识,于是乎拿了一个app当测试例子,争取在上面找到漏洞。在学习过程中发现Android四大组件的安全性还是占有较大的比重,另外比较关心的是数据的安全性。数据泄漏、明文存储等和数据相关都是比较重要的。但是今天找到的一个漏洞是关于Activity组件的,本地拒绝服务漏洞。

同时学习了drozer的使用方法,利用drozer帮忙找漏洞。

下面总结一些常用的drozer命令:

# xxx是包名的一部分,运行这条命令之后会显示完整的包名
run app.package.info -f xxx
# 运行这条命令会打印出包相关的信息,包括版本、路径、权限、uid、gid等
run app.package.info -a <包名>
# 运行这条命令之后会打印出这个应用四大组件的攻击面,Activity, Service, Content,Provider, Broadcast是否有暴露的风险
run app.package.attacksurface <包名>  
# 运行这条命令会打印出exported的activity,并且显示是否需要相应的权限
run app.activity.info -a <包名>
# 如果activity是exported并且不需要权限,那么运行这条命令就可以启动相应的activity了
run app.activity.start --component <包名> <activity>

(目前只测试了activity组件,所以关于其他组件的命令暂时还没有使用)

Read More