dummersoul 发表于 2022-5-6 16:12

XCTF-app3 writeup

这一题的样本不再是前两题的apk文件了,而是ab类型文件,这是什么啊,因为不知道所以去百度一下,原来是Backup Files
那么如何打开呢,在GitHub上下载abe.jarhttps://github.com/nelenkov/android-backup-extractor/releases/tag/master-20220409062712-07bb660
然后adb unpack xxxx.ab backup.tar 就会在当前位置生成一个tar文件,继续将其解压
你会发现里面有base.apk和demo.db、Encryto.db三个文件,这个加密的数据库一定就是本题破解的关键,用SQLite软件直接打开db文件也打不开,肯定是需要密钥的。
还是常规操作,先用jadx-gui打开apk
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506151803.png

由于这个apk在模拟器或者在真机上都打不开,出现闪退的现象,所以没办法进行动态调试,不然会简单许多,直接frida hook 关键参数就能得到flag
所以我们一点一点进行分析
首先看到onCreat函数里面,对一些参数进行了赋值,然后调用了a()函数,再继续看a函数,一二行是在创建Demo.db数据库文件,然后name和password这俩数进行赋值,再创建了一个a类的对象 aVar, 然后对这个对象进行了a方法的调用
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506152559.png
通过查看a类里面的代码,这个a方法也就是截断数据前四个并拼接,也就是说a2就是Stra1234
然后通过getWritableDatabase进行加载数据,后面的参数也就是带的密钥
在net.sqlcipher.database.SQLiteOpenHelper类下也能看到对这个方法的一些自定义
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506154903.png
现在已经知道了flag是从哪里获取的,就可以自己新建工程文件,进行仿制操作
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506154518.png
密钥就是ae56f99
然后通过DB Browser for SQLite软件打开加密的数据库
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506154618.png
对其进行base64解密,得到 Tctf{H3ll0_Do_Y0u_Lov3_Tenc3nt!}
哦吼,腾讯出品,必为。。


如果这个apk可以运行,就直接hook getWriteDatabase
function hook_getWritableDatabase(){
    Java.perform(function(){
    Java.use("net.sqlcipher.database.SQLiteOpenHelper").getWritableDatabase.overload('java.lang.String').implementation=function (str){
      var result=this.getWritableDatabase(str);
      console.log("[+]getWritableDatabase:"+str);
      return result;
      }
    })
}
    setlmmediate(hook_getWritableDatabase)
https://raw.githubusercontent.com/dummersoul/Picture/main/img/20220506160706.png

也可以通过打印在smali代码中插入log日志的方式获取密钥
const-string v4, "flag"

invoke-static {v4, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

方法很多,看懂代码最重要,像这题a类b类a参数b参数各种字母太多了,很容易不理解程序到底哪个对应哪个,还是要加强代码分析能力才行。


这一题太大,就不上传附件了。

ShanGuiOne 发表于 2022-5-8 13:28

学习学习

yjiangp018 发表于 2022-5-8 19:38

nb 啊支持楼主加油

taxuewuhen 发表于 2022-5-9 00:30

支持楼主加油

alongzhenggang 发表于 2022-5-9 22:03

末学敬仰 {:301_975:}{:301_1003:}

Wuaicrack 发表于 2022-5-10 10:26

好就没来了,祝论坛越办越好
页: [1]
查看完整版本: XCTF-app3 writeup