吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2598|回复: 0
收起左侧

[Android CTF] 《攻防世界》MOBILE--app3

[复制链接]
HNHuangJingYU 发表于 2021-9-28 22:08
本帖最后由 HNHuangJingYU 于 2021-9-29 20:33 编辑

1.下载附加发现是一个ab文件,好奇去网上搜了,根据博主的步骤后得到了一个tar文件,拿到后里面有个apk文件,照常一样拉进JEB分析,解密命令如下:
[Shell] 纯文本查看 复制代码
Java -jar C:\Users\54622\Downloads\abe-all.jar unpack C:\Users\54622\Desktop\399649a0e89b46309dd5ae78ff96917a.ab C:\Users\54622\Desktop\demo3.tar 

2.来到MainActivity就是一个单击跳转和加载数据库文件,进入后发现AnotherActivity里面并没有什么东西,嗯,结合我们刚才得到的tar文件里面也有db文件,那么这题应该就是从数据库入手找flag了,回到tar文件打开db文件发现报错,好家伙,再回JEB进行分析。
3.仔细分析来到SQLiteDatabase类后结合自己的推论,出题人大概率不会自己写一个数据库加载工具类的,再结合该类里面的关键字进行网络搜索后确定了就是sqlcipher进行解密db文件,如图1

1

1


4.在MainActivity就有提到SqlCipher关键字然后后面就有个ver_sion版本,因为SqlCipher是需要对应的版本进行解密的下载到对应的版本后进行解密对应解密的步骤各大博主都有,给大家说下我遇到的问题,好像3.0.1的版本也可以使用,进入你下载后的文件的bin目录(因为没有配置环境变量)先输入sqlcipher-shell32  D://encrypted.db(这个是你需要解密的db路径) 回车后回进入一个sqlcipher模式,然后再进行对这个文件的解密:
[Shell] 纯文本查看 复制代码
PRAGMA key = '123456';
ATTACH DATABASE 'demo_input.db' AS plaintext KEY '';
SELECT sqlcipher_export('plaintext');
DETACH DATABASE plaintext;

5. 好家伙到了这里发现没有key又返回去找密钥,看到了一个getWritableDatabase方法这个方法就是用来打开数据库的,既然加密了所以方法里面的参数应该就是密钥,直接把JEB中的a类和b类复制过来按照他的写法很快就得出密钥:ae56f99
6. 既然有了密钥就去试试解密数据库把密钥给第4步骤那里的命令补上去再执行命令后,在bin目录下找到demo_input.db这个就是解密后的db文件,用sqlite数据库软件打开db文件如图2

2

2


7. 尝试着提交flag 发现都不行,再次回到JEB分析看到了之前保存的键值对如图3,刚才tar文件里面是不是还有个Encryto.db文件,再次进行db解密后在这里发现了flag如图4,最后提交flag提示正确:VGN0ZntIM2xsMF9Eb19ZMHVfTG92M19UZW5jM250IX0=

3

3

4

4

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 15:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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