一文入门AndroidCTF:以攻防世界#基础Android为例

admin 2024年4月26日07:26:16评论3 views字数 1378阅读4分35秒阅读模式

本文为 Android CTF 系列的第篇文章,祝您阅读愉快。

本系列文章的目的为:在读者拥有一定编程/代码审计知识的情况下,使读者拥有解出大多数Android CTF题的思路。如读者对系列中提到的工具或知识不了解,可以点击下方合集查看往期文章,您需要的所有内容都在此处。

如您喜欢,请点赞在看关注,这是对笔者的最大支持,也是让笔者加速更新的动力源泉。

开源是一种精神,它为自由平等而生。

维护一个共享、有序、安全、开源、高质量、低抄袭的技术学习环境,人人有责。

周五了就不整活了,祝大家看得愉快。本期对无基础的同学也很友好,只需要你阅读了我之前写的基础指北一:

Android渗透测试从零开始①:基础指北(一)

哪怕没有阅读,会使用前期准备中的工具也够了。

1 前期准备

作为系列的第一篇文章,写点指引是必要的。

在CTF比赛中我们通常需要准备三种类型的工具:

  • 模拟器

  • APK源码读取工具(Jadx、GDA、jeb)

  • 反编译工具(apkTool)

自然,如果是比较困难的题,可能还需要:

  • so反编译工具(IDA)

  • Hook工具(frida)

  • so主动调用环境、脱壳工具等...

由于CTF题中很少有网络调用,基本不需要额外准备抓包工具,需要注重的是对代码逻辑的分析以及混淆破解、脱壳。

2 读题-确定方向

纯Java题。

一文入门AndroidCTF:以攻防世界#基础Android为例

先使用模拟器运行附件,可以看到是一个校验密码的APP:

一文入门AndroidCTF:以攻防世界#基础Android为例

顺带看一眼代码,明显无混淆,看来重点是读代码:

一文入门AndroidCTF:以攻防世界#基础Android为例

对于这种情况,首先的方向肯定是找到校验密码的逻辑,密码可能为flag。

同时,由于GDA对匿名类处理较好(Java事件处理对象通常会是个匿名类),所以这种会用上事件的APP优先看GDA。当然,Jadx和GDA同时使用是最好的,因为Jadx同时也能看资源+有时候反编译的逻辑会有问题。

3 找到第一个pass

这里简单看一下两个Activity的匿名类(实际就是看onClick)可以找到校验逻辑,为Check类的checkPassword函数:

一文入门AndroidCTF:以攻防世界#基础Android为例

转向checkPassword函数,对此函数进行分析即可:

一文入门AndroidCTF:以攻防世界#基础Android为例

可以看出,pass为长度12的字符串,每个成员满足char(255-100-index-pass[index])=‘0’,一个简单的数学问题。

简单写个脚本解出了password,并不是flag,看来要进一步查找:

li=[]
for i in range(12):
li.append(chr(107-i))
print(li)

pass为kjihgfedcba`

一文入门AndroidCTF:以攻防世界#基础Android为例

4 定位第二个Activity

输入pass到文本框,进入第二个Activity:

一文入门AndroidCTF:以攻防世界#基础Android为例

经过一番定位,定位到现在出现的Activity为NextContent(一些Intent与Boardcast机制,详情请百度,一两句话是讲不清楚的):

一文入门AndroidCTF:以攻防世界#基础Android为例

一文入门AndroidCTF:以攻防世界#基础Android为例

一文入门AndroidCTF:以攻防世界#基础Android为例

一文入门AndroidCTF:以攻防世界#基础Android为例

5 获取flag

主要逻辑在Change内:

一文入门AndroidCTF:以攻防世界#基础Android为例

可以看到判断文件img.jpg存在时使用此文件,不存在时使用timg_2.zip。

由于逻辑内未使用文本框内容,推测是需要直接打开timg_2.zip。由于这里读取两个文件的方式相同,第二个文件也应使用jpg格式打开。

使用解压缩工具直接解压APP,找到timg_2.zip并修改后缀为jpg打开,获得flag:

一文入门AndroidCTF:以攻防世界#基础Android为例

Flag为flag{08067-wlecome}

原文始发于微信公众号(重生之成为赛博女保安):一文入门AndroidCTF:以攻防世界#基础Android为例

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月26日07:26:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一文入门AndroidCTF:以攻防世界#基础Android为例https://cn-sec.com/archives/2690182.html

发表评论

匿名网友 填写信息