记一次授权的APK渗透测试

作为一个渗透测试小白,本文的目的是希望能为那些和我一样的小白提供一些测试思路。

涉及的内容可能比较基础,表哥们见谅。

APK 解包

拿到 apk 之后直接用 7-Zip 解压可以得到几个文件夹、一个 AndroidManifest.xml 文件、一个dex文件。使用 dex2jar https://sourceforge.net/projects/dex2jar/ 将这个dex文件解压会生成一个jar文件,然后使用jd-gui就可以查看java源代码了。

当然可以从源码里找代码的漏洞,但是一般会有混淆,在这也不做深入讨论。

上边提到的 xml 文件一定不能发放过,里边涉及到许多重要的配置项,比如:

  • AndroidManifest.xml文件中android:debuggable为true。app 可被任意调试

  • AndroidManifest.xml文件中android: allowBackup为true。app 数据可以被备份导出。

  • 等等...

  • 还有一点在实际测试过程中可能会用到:在对 apk 解压之后可以尝试在 powershell 里边搜一下 db 文件,说不定有敏感信息(为什么这么说,因为我碰到过一次...)

    for /r F:\source-code %i in (*.db) do echo %i

    大家有兴趣的话可以上合天网安实验室做相关的实验,推荐实验:apk安全分析检测(通过实验学习如何运行apk安全分析检测程序,对apk进行安全分析检测,通过分析发现其中的潜在威胁。)

    登陆页面

    用户名可枚举

    输入用户名之后响应用户名不存在,这就是最简单的枚举用户名的情形了。

    这次碰到的是登陆不需要密码,但是要输入已经注册过的用户名,之后会根据用户名发送验证码到对应手机,同时设置了 120s 内不能重新发送,并且验证码 120s 内有效。

    这时候看起来我们没办法通过验证码做什么事,但是在实际测试过程中发现

  • 当我们输入存在的账号之后提示发送成功;

  • 重复发送,会响应 120s 内不能重复发送;

  • 输入不存在用户会提示发送失败。

  • 所以这个时间限制对用户名枚举其实没什么影响,我们可以通过爆破用户名根据返回的信息来查看用户名是否存在。

    等等,既然咱都不知道手机号,也不让输密码登陆,就算得到用户名生成社工字典也没法用啊,那拿到了用户名有什么用?

    当然有用,不过要看具体场景,比如下面这个案例

    任意验证码绕过

    当我们登陆时服务端给账号绑定的手机号发送短信验证码,我们输入一个上一步得到的账号,验证码随便输,点击登陆后抓包,登陆失败,发现响应中有两个 code 字段

    改改试试:

    It works!

    实验推荐:验证码绕过漏洞(掌握常见的验证码绕过漏洞原理,以及绕过方式利用和漏洞防护)

    功能页面

    成功登录之后,各个功能都点点看看,在个人信息页面有一个查询实时在线人数功能,那一栏只显示了人数,旁边并没有箭头

    我一度以为那里不能点击(事实上因为数据量太大,加载了好长时间,我直接点返回了,给我的感觉就是这里没有东西),进去之后就可以看到所有登陆人员的信息了。

    在我尝试了不同用户之后,发现这里的用户信息并没有权限限制,也就是说对所有人都是可见的,明显的权限配置不当。

    除此之外,应用存在几处查询功能,通过BURP 看到返回的数据包都是 JSON 类型

    因为没什么经验,所以就多尝试吗,在 json 那里注入,xxe 都来一遍,没啥用。

    前面还有一个参数,试试?

    有戏!试试 xss 吧

    放到浏览器成功弹窗!

    实验推荐:XSS跨站脚本攻击原理与实践(本实验将详细介绍XSS攻击的原理)

    总结

    平时做测试还是要细心,多总结,每一个能输入的地方都不能放过,多试试总是好的。

(0)

相关推荐

  • Android之用jadx进行反编译

    利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex, .apk, .jar, .class 类型的文件进行直接反编译 对比之前 apktool(解包ap ...

  • 记一次相对完整的渗透测试

    教育src 700rank了想着继续冲一波分,早日上核心,于是就有了下面这一次渗透测试的过程了. 开局一个登陆框,且存在密码找回功能. 归属为某教育局 开启burp 抓取登陆包,发现用户密码并未加密 ...

  • 『渗透测试』常见未授权访问总结

    日期:2021-05-11 作者:ICDAT 来源:宸极实验室 介绍:本文主要介绍了常见未授权访问漏洞的检测以及利用. 0x00 前言 最近测试过程遇到了一些未授权访问的漏洞,就做了一些总结,以后遇到 ...

  • 记一次PHP渗透测试实战教程

    0x01前言 在渗透测试过程中,开发不可能每一次都将结果输出到页面上,也就是漏洞无回显的情况,那么在这种情况下,我们可以通过dnslog判断漏洞存在,或者通过起一个python的http服务来判断,方 ...

  • 最牛渗透测试工具开发公司Rapid7源代码遭到Codecov供应链攻击

    了解过远程风险评估的朋友,对Metasploit肯定都不陌生,那么对Rapid7这个全球领先的安全风险信息解决方案提供商理应也是不陌生的.同时,对于2020年SolarWinds供应链攻击还在不断推陈 ...

  • 渗透测试可能遇到常用消息头-网络安全基础

    渗透测试员在攻击Web应用程序时可能遇到哪些消息头?HTTP支持许多不同的消息头,其中一些专用于特殊用途.一些消息头可用在请求与响应中,而其他一些消息头只能专门用在某个特定的消息中.那么渗透测试可能遇 ...

  • 渗透测试可能遇到哪些请求消息头?网络安全学习

    渗透测试员在攻击Web应用程序时可能遇到哪些消息头?HTTP支持许多不同的消息头,其中一些专用于特殊用途.一些消息头可用在请求与响应中,而其他一些消息头只能专门用在某个特定的消息中.那么渗透测试可能遇 ...

  • 渗透测试可能遇到哪些响应消息头?网络安全技能

    渗透测试员在攻击Web应用程序时可能遇到哪些响应消息头?HTTP支持许多不同的消息头,其中一些专用于特殊用途.一些消息头可用在请求与响应中,而其他一些消息头只能专门用在某个特定的消息中.那么渗透测试可 ...

  • 一般渗透测试的流程步骤是什么?网络安全知识

    渗透测试这个事情不是随便拿个工具就可以做了,要了解业务还需要给出解决方案.那么对于网络安全工程来说,工作中的渗透测试的流程是怎样的?渗透测试与入侵有什么区别? 渗透测试与入侵的最大区别? 渗透测试:出 ...

  • 渗透测试前期之信息收集总结

    信息收集的意义 信息收集对于渗透测试前期来说是非常重要的.正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试. 信息收集的 ...