吾愛破解 - LCG - LSG |安卓破解|病毒分析|破解軟件|www.pyclye.live

 找回密碼
 注冊[Register]

QQ登錄

只需一步,快速開始

搜索
查看: 1791|回復: 10
上一主題 下一主題

[Android CTF] 攻防世界題解3-app3

  [復制鏈接]
跳轉到指定樓層
樓主
丶諾熙 發表于 2020-1-11 20:08 回帖獎勵

app3

附件地址:https://adworld.xctf.org.cn/media/task/attachments/12c5199c0b674da4be05747258218bbe.ab

@windy_ll師傅對這道題的題解已經很棒了。在這里我就再次參考@windy_ll師傅的wp復現一下。

復現

首先通過android-backup-extractor解開ab文件?梢缘玫揭韵聝热。

存在兩個db文件,打開均需要密碼。
此時開始對base.apk嘗試逆向。

首先還是看MainActivity,我們可以看到onCreate后,調用了a函數。

此時可以發現a函數為獲取秘鑰,解密數據庫的關鍵點。

其首先創建了用戶名與密碼。然后通過tencentwelcome.a.a這個類對其進行加密,最終得到密碼,傳入b,解密數據庫。
故我們需要解密傳入到getWritableDatabase中的密碼。

分析后,發現未調用so。所以我們可以直接提出關鍵的java代碼。直接執行,即可獲取密碼。

以下為我們提出的tencentwelcome.a.a,并將MainActivity中的核心邏輯放到了main函數中。

// Test.java
public class Test {

    private String a;

    public Test() {
        super();
        this.a = "yaphetshan";
    }

    public String a(String arg4, String arg5) {
        return arg4.substring(0, 4) + arg5.substring(0, 4);
    }

    public String a(String arg3) {
        new b();
        return b.b(arg3 + this.a);
    }

    public String b(String arg2, String arg3) {
        new b();
        return b.a(arg2);
    }

    // 
    public static void main(String args[]) { 
        Test k = new Test();
        String v2 = k.a("Stranger", "123456");
        String ccc = k.a(v2 + k.b(v2, "123456")).substring(0, 7);
        System.out.println(ccc); 
    } 
}

此時分析我們發現還需要一個b的依賴,故也提出來。

// b.java

import java.security.MessageDigest;

public class b {
    public b() {
        super();
    }

    public static final String a(String arg9) {
        String v0_2;
        int v0 = 0;
        char[] v2 = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
        try {
            byte[] v1 = arg9.getBytes();
            MessageDigest v3 = MessageDigest.getInstance("MD5");
            v3.update(v1);
            byte[] v3_1 = v3.digest();
            int v4 = v3_1.length;
            char[] v5 = new char[v4 * 2];
            int v1_1 = 0;
            while(v0 < v4) {
                int v6 = v3_1[v0];
                int v7 = v1_1 + 1;
                v5[v1_1] = v2[v6 >>> 4 & 15];
                v1_1 = v7 + 1;
                v5[v7] = v2[v6 & 15];
                ++v0;
            }

            v0_2 = new String(v5);
        }
        catch(Exception v0_1) {
            v0_2 = null;
        }

        return v0_2;
    }

    public static final String b(String arg9) {
        String v0_2;
        int v0 = 0;
        char[] v2 = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
        try {
            byte[] v1 = arg9.getBytes();
            MessageDigest v3 = MessageDigest.getInstance("SHA-1");
            v3.update(v1);
            byte[] v3_1 = v3.digest();
            int v4 = v3_1.length;
            char[] v5 = new char[v4 * 2];
            int v1_1 = 0;
            while(v0 < v4) {
                int v6 = v3_1[v0];
                int v7 = v1_1 + 1;
                v5[v1_1] = v2[v6 >>> 4 & 15];
                v1_1 = v7 + 1;
                v5[v7] = v2[v6 & 15];
                ++v0;
            }

            v0_2 = new String(v5);
        }
        catch(Exception v0_1) {
            v0_2 = null;
        }

        return v0_2;
    }
}

將上述兩個文件保存,然后運行即可。

javac Test.java
java Test

然后解密我們的數據庫即可。

最終得到flag

免費評分

參與人數 4威望 +1 吾愛幣 +11 熱心值 +4 收起 理由
qtfreet00 + 1 + 9 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
七個漲停一倍 + 1 鼓勵轉貼優秀軟件安全工具和文檔!
nanshenlj + 1 + 1 謝謝,學習了
windy_ll + 1 + 1 我很贊同!

查看全部評分

發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

沙發
Parker19 發表于 2020-1-11 20:27
學習了,感謝感謝~
3#
2Burhero 發表于 2020-1-11 21:47
4#
woai65662218 發表于 2020-1-11 22:01
5#
1575581092 發表于 2020-1-12 00:30
學習了,感謝感謝~
6#
daymissed 發表于 2020-1-12 14:47
有點不懂,努力學習
7#
4G小辣椒 發表于 2020-1-12 14:53
感謝分享,,,
8#
nanshenlj 發表于 2020-1-13 03:36
謝大佬.感謝分享
9#
whofly 發表于 2020-1-13 08:50
攻防世界  黑客攻防
10#
a1327831029 發表于 2020-1-13 11:52

學習了,感謝感謝
您需要登錄后才可以回帖 登錄 | 注冊[Register]

本版積分規則 警告:本版塊禁止灌水或回復與主題無關內容,違者重罰!

快速回復 收藏帖子 返回列表 搜索

RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

GMT+8, 2020-3-30 20:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
腾讯二分彩骗局