吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6483|回复: 11
收起左侧

[Android CTF] 攻防世界题解2-app2

[复制链接]
丶诺熙 发表于 2020-1-11 12:40

app2

新人发帖,欢迎各位大佬多多指教
附件地址:https://adworld.xctf.org.cn/media/task/attachments/30e5fb52c9134abbb4b80efc44ee4ec3.apk

(自己解题的时候比较懒,一般懒得去将apk安装。采取直接逆的方式。上一篇可能写的不是太详细,这篇再详细说说)

初探-分析

首先拿到一道安卓题目,我会解压apk,看一下lib文件夹中,是否有东西。一般来说,如果没有的话,题目就是较为简单的,分析java代码即可,如果有,还需要我们去逆向so文件。

可以看到,在这个题目中,确实是存在so文件的。(大家不要在意那三个文件夹,他表示在不同架构下,去执行的so文件。

此时可以猜测这道题目的做法,首先分析java代码,找到关键逻辑,进而继续分析so。

开始解题-java

将apk文件,拖入JEB中。点击Bytecode,可以看到我们这个程序的结构。

此时我们需要关注MainActivity,这个一般是我们的程序入口。
点击进去,然后右键Decompile进行反编译。

分析代码,可以看到onClick这里,获取了c,d空间的文本内容。猜测是获取我们输入的两个字符串。

进而保存为ili,lil传入给了SecondActivity。

然后我们继续跟进SecondActivity

可以发现在这里将我们传入的字符串取出,并进行加密,然后与一个加密字符串做比对操作。

此时我们需要继续跟一下加密,看一下这里是如何实现的,以及我们该怎么逆向其代码。

可以看到,到这里,正式进入到了我们的so文件中。

开始解题-so

将三个so文件中的任意一个拖入ida中,

然后根据我们刚刚已知的doRawData关键字,找到相应的函数。

分析,可以发现,应该是对我们传入的数据做了AES加密。

v4应该是我们传入的值,v10则是秘钥。可以看到v14-v10这里组成了个数组。我们将其取出。秘钥即为thisisatestkey==

然后自己构造一个AES脚本对我们之前拿到的数据进行解密。

解题-踩坑ing..

解密得到aimagetencent。提交flag,发现失败,猜测这个即为我们的登陆账号密码。
然后安装apk,尝试登陆发现闪退。

我们只能继续去看一下登陆逻辑,没发现什么。(其实是跟不下去了

然后找了一下大佬们的wp。发现存在一个没有被调用过的FileDataActivity。
flag在这里。

于是拿到我们的字符串,然后解密,即可得到flag。

解密脚本如下:

#coding:utf-8
import base64
from Crypto.Cipher import AES

class AesEncry(object):
    key = "thisisatestkey=="  # aes秘钥

    def encrypt(self, data):
        data = json.dumps(data)
        mode = AES.MODE_ECB
        padding = lambda s: s + (16 - len(s) % 16) * chr(16 - len(s) % 16)
        cryptos = AES.new(self.key, mode)
        cipher_text = cryptos.encrypt(padding(data).encode("utf-8"))
        return base64.b64encode(cipher_text).decode("utf-8")

    def decrypt(self, data):
        cryptos = AES.new(self.key, AES.MODE_ECB)
        decrpytBytes = base64.b64decode(data)
        meg = cryptos.decrypt(decrpytBytes).decode('utf-8')
        return meg[:-ord(meg[-1])]

a =AesEncry().decrypt("9YuQ2dk8CSaCe7DTAmaqAA==")
print(a)

免费评分

参与人数 3威望 +1 吾爱币 +11 热心值 +2 收起 理由
qtfreet00 + 1 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lookerJ + 1 用心讨论,共获提升!
zwgleon + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

人小鬼大666 发表于 2020-1-11 13:17
虽然看不懂,但是我还是坚持看完了。

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
丨灬坏蛋er丨 + 1 我很赞同!
zhangshaohua + 1 + 1 热心回复!

查看全部评分

netspy0808 发表于 2020-1-11 18:42
因为平时搞娃娃的作业比较多,各种app全买吧又不实现,想着自己学学来破解看看,结果,我发现我居然看了也是等于白看,完全看不懂啊,只有膜拜大佬的份!
toddwong 发表于 2020-1-11 13:28
13510667258 发表于 2020-1-11 14:01
收益匪浅,值得学习,非常感谢
lep52 发表于 2020-1-11 14:26
学习了,谢谢
听世界的喧闹 发表于 2020-1-11 14:50

高手,直接破so.我还在外面徘徊
2Burhero 发表于 2020-1-11 17:59
感谢等放学
starlancer 发表于 2020-1-13 15:13

感谢等放学
z5487693 发表于 2020-1-13 16:07
分享下大佬的wp😄
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 18:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表