KGB messenger CTF challenge | Alerts (Medium)


  • アプリケーションの実行時にロシアのデバイスでのみ実行される通知ウィンドウは少ない
  • dex 2 jarを使用してdexファイルjarファイル
  • に変換
  • androidmanifestが確認したmainアクティビティは、最初に実行された
  • です.
    チェック
  • onCreat関数
  • user.家庭はRussiaあるいはソースコード
  • を修正する必要がある
  • smailコードを変更し、
  • を迂回

    すべての削除条件文
  • (10-82)
  • 既存のsmariコード
  • .method protected onCreate(Landroid/os/Bundle;)V
        .locals 3
    
        invoke-super {p0, p1}, Landroid/support/v7/app/c;->onCreate(Landroid/os/Bundle;)V
    
        const v0, 0x7f09001c
    
        invoke-virtual {p0, v0}, Lcom/tlamb96/kgbmessenger/MainActivity;->setContentView(I)V
    
        const-string v0, "user.home"
    
        invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
    
        move-result-object v0
    
        const-string v1, "USER"
    
        invoke-static {v1}, Ljava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String;
    
        move-result-object v1
    
        if-eqz v0, :cond_0
    
        invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
    
        move-result v2
    
        if-nez v2, :cond_0
    
        const-string v2, "Russia"
    
        invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v0
    
        if-nez v0, :cond_1
    
        :cond_0
        const-string v0, "Integrity Error"
    
        const-string v1, "This app can only run on Russian devices."
    
        invoke-direct {p0, v0, v1}, Lcom/tlamb96/kgbmessenger/MainActivity;->a(Ljava/lang/String;Ljava/lang/String;)V
    
        :goto_0
        return-void
    
        :cond_1
        if-eqz v1, :cond_2
    
        invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z
    
        move-result v0
    
        if-nez v0, :cond_2
    
        invoke-virtual {p0}, Lcom/tlamb96/kgbmessenger/MainActivity;->getResources()Landroid/content/res/Resources;
    
        move-result-object v0
    
        const/high16 v2, 0x7f0d0000
    
        invoke-virtual {v0, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
    
        move-result-object v0
    
        invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v0
    
        if-nez v0, :cond_3
    
        :cond_2
        const-string v0, "Integrity Error"
    
        const-string v1, "Must be on the user whitelist."
    
        invoke-direct {p0, v0, v1}, Lcom/tlamb96/kgbmessenger/MainActivity;->a(Ljava/lang/String;Ljava/lang/String;)V
    
        goto :goto_0
    
        :cond_3
        invoke-static {p0}, La/a/a/a/a;->a(Landroid/content/Context;)V
    
        new-instance v0, Landroid/content/Intent;
    
        const-class v1, Lcom/tlamb96/kgbmessenger/LoginActivity;
    
        invoke-direct {v0, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
    
        invoke-virtual {p0, v0}, Lcom/tlamb96/kgbmessenger/MainActivity;->startActivity(Landroid/content/Intent;)V
    
        goto :goto_0
    .end method
  • apkファイル再構築
  • apktool b kgb-messenger -o kgb-re.apk
  • 署名
  • GitHub - appium-boneyard/sign: Sign.jar automatically signs an apk with the Android test certificate.
    Unable to access jarfile SignApk
  • 現在、傘下の署名apk.jarファイルがなく、単独でダウンロードする必要があります.
  • 
    java -jar signapk.jar testkey.x509.pem testkey.pk8 kgb-re.apk kgb-re-sign.apk
  • 警告ウィンドウが表示されなくなりました.
  • を続行できます.
  • 登録
  • string.xmlファイルでユーザー名とパスワード
  • を検証できます.
  • ただし、IDとパスワードを使用してログインした場合、入力したパスワードは
  • です.
  • ID codenameducessパスワードを検索すると、PDFファイル
  • が表示されます.
  • Passwordは来賓です
  • 成功時停止フラグ
  • ログイン成功画面
  • フラグFLAG{G 00 G 13 PRO}