也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
0x01 前言
fuzzing是安全人员用来自动化挖掘漏洞的一种技术,通过编写fuzzer工具向目标程序提供某种形式的输入并观察其响应来发现问题,这种输入可以是完全随机的或精心构造的,使用边界值附近的值对目标进行测试。为什么选择Drozer来做fuzzing框架呢?可扩展、易用是最大的原因
Drozer基于客户端-服务器架构,其中客户端安装在本地,而服务器则是Android应用或代理。运行Android应用程序后,它会在端口31415上启动Drozer服务器,端口31415也是与客户端进行通信的端口
Drozer其完美的利用java的反射机制,使用C/S 架构,可通过在PC端使用 python 来编辑 java 代码,然后通过protobuf协议将其传输至移动端的agent,最后移动端agent通过java反射机制动态执行java代码。同时使用了python动态加载技术importlib,实现插件化的执行脚本框架,使得执行脚本可以互不干扰,相互独立,且可以任意增加或卸载
四大组件常见的枚举APP包及包组件信息的执行命令的用法基本相似,因为这些枚举命令的执行其实是调用了drozer的各个Python模块。这些模块通过android package manager获取app中acvitity/service/broadcast/provider组件的信息。可以通过在github上drozer项目查找这些模块的源代码,了解drozer模块的编写方式及各个模块的功能实现ÿ