原理
大部分漏洞的存在并不是在客户端而是在服务端,比如说SQL注入、越权漏洞、支付漏洞、变量覆盖、反序列化、文件包含、文件上传、验证码绕传等等,这些漏洞都是和服务端相关的,跟我们用Pc端还是移动端去访问并无关系 因此渗透测试的核心其实就是把控传参。 大部分情况来看,app渗透测试和web渗透测试基本区别不大,思路也可以参考web渗透
app渗透测试流程
web渗透测试的流程是 信息收集- 漏洞挖掘- 漏洞利用- get shell- 提权- 权限维持- 痕迹清理- 撰写报告总结 app的渗透测试主要包括 1、四大组件渗透2、app应用层渗透3、反编译 四大组件渗透的渗透测试可能会得到一些敏感数据信息,可以使用Drozer安全测试框架进行测试 app应用层渗透的渗透测试思路可以直接运用web渗透测试流程,例如可以抓包分析,找到一些交互点,然后抓包分析参数,挖掘是否有注入漏洞,敏感信息泄漏漏洞。这块的目标是get shell,也是我们目前的重点 反编译的内容就相对更复杂,因为逆向工程在渗透app当中非常重要,但从时间成本来看,需要时间很长,而且并不简单
模拟器的使用
app的交互是app—>服务器 app的抓包可以通过安装Android模拟器 雷电模拟器 burp抓包工具 安装后设置WLAN,高级选项-手动-主机名填入本机IP,端口写入8080 电脑安装抓包工具,如果不能抓包失败,或者提示证书有问题,模拟器可以尝试安装工具的证书 burp也需要设置相同IP与端口
fiddler
fiddler抓包工具 与上面相同,端口设为8888
app使用中的漏洞
文本输入框可以考虑xss漏洞 文件上传可以考虑文件上传漏洞
Xposed
Inspeckage模块 通过web页面管理工具,web管理端口是127.0.0.1:8008,通过浏览器访问,也可以通过adb端口转发 adb forward tcp:8008 tcp:8008将手机上的端口转发到电脑端口,在电脑端查看 需要安装后选择要监控的应用,然后启动该应用 然后打开浏览器,输入127.0.0.1:8008 能够看到SQLite语句、Http请求、Hash加密、Crypto(其他加密)、SharedPreferences等等。也可以在设置中进行过滤掉ssl,并转发出去,用抓包工具来查看,使接口抓取更简洁 TrustMeAlready模块 关闭ss流的验证