보안을 그리다, 훈이

[Pwnable] 써니나타스(SuNiNaTaS) 24번 문제 Write Up 본문

Security/Wargame

[Pwnable] 써니나타스(SuNiNaTaS) 24번 문제 Write Up

HooNeee 2021. 12. 9. 13:18

 

System 분야 써니나타스(SuNiNaTaS) 24번 문제 풀이입니다.

 

 

Game 24

 

suninatas.com

 

[SuNiNaTaS] Challenge 24

 

문제에 진입하면 위와 같이 다운로드할 수 있는 파일 링크가 주어진다.

 

'suninatas24' 파일을 설치한 후 헤더 시그니처를 살펴보자.

 

suninatas24

 

헤더 시그니처는 504B0304 / PK로 압축 파일인 것을 알게 되었으니 압축을 풀어보자.

 

Unzip suninatas24

 

파일 및 디렉토리 구성을 보니 apk 파일이었던 것을 알 수 있다.

 

apk 파일도 압축파일이므로 잘 구분하여야 한다.

 

그러나 apk 파일을 여느 압축파일처럼 해제해주면 사람이 해독할 수 있는 정상적인 코드로 디컴파일되지 않기 때문에,

 

jadx, dex2jar 등의 전용 디컴파일러를 사용하는 것이 좋다.

 

> jadx suninatas24

 

필자는 jadx를 사용하여 위 명령으로 디컴파일 하였고 수많은 디렉토리와 java로 구현된 소스파일들이 나타났다.

 

'MainActivity.java'의 소스코드를 보자.

 

package com.suninatas.suninatas24;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
/* loaded from: classes.dex */
public class MainActivity extends Activity {
    @Override // android.app.Activity
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_main);
        ((Button) findViewById(R.id.btn_send)).setOnClickListener(new View.OnClickListener() { // from class: com.suninatas.suninatas24.MainActivity.1
            @Override // android.view.View.OnClickListener
            public void onClick(View view) {
                Editable text = ((EditText) MainActivity.this.findViewById(R.id.input_id)).getText();
                Editable text2 = ((EditText) MainActivity.this.findViewById(R.id.input_pw)).getText();
                Editable text3 = ((EditText) MainActivity.this.findViewById(R.id.input_key)).getText();
                if (text3.toString().equals("https://www.youtube.com/channel/UCuPOkAy1x5eZhUda-aZXUlg")) {
                    MainActivity mainActivity = MainActivity.this;
                    mainActivity.startActivity(new Intent("android.intent.action.VIEW", Uri.parse("http://www.suninatas.com/challenge/web24/chk_key.asp?id=" + text.toString() + "&pw=" + text2.toString() + "&key=" + text3.toString())));
                    return;
                }
                new AlertDialog.Builder(MainActivity.this).setMessage("Wrong!").setNeutralButton("Close", new DialogInterface.OnClickListener() { // from class: com.suninatas.suninatas24.MainActivity.1.1
                    @Override // android.content.DialogInterface.OnClickListener
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();
                    }
                }).show();
            }
        });
    }
//http://www.suninatas.com/challenge/web24/chk_key.asp?id=HooNeee&pw=Ytxc3zV%40arwNZcA&key=https://www.youtube.com/channel/UCuPOkAy1x5eZhUda-aZXUlg
    @Override // android.app.Activity
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

 

다 볼 필요는 없으니 중요한 코드 일부만 긁어보자.

 

public void onClick(View view) {
	Editable text = ((EditText) MainActivity.this.findViewById(R.id.input_id)).getText();
	Editable text2 = ((EditText) MainActivity.this.findViewById(R.id.input_pw)).getText();
	Editable text3 = ((EditText) MainActivity.this.findViewById(R.id.input_key)).getText();
	if (text3.toString().equals("https://www.youtube.com/channel/UCuPOkAy1x5eZhUda-aZXUlg")) {
		MainActivity mainActivity = MainActivity.this;
		mainActivity.startActivity(new Intent("android.intent.action.VIEW", Uri.parse("http://www.suninatas.com/challenge/web24/chk_key.asp?id=" + text.toString() + "&pw=" + text2.toString() + "&key=" + text3.toString())));
		return;
	}
}

 

먼저, 변수 text에 id, text2에 pw, text3에 key를 넣는다.

 

그리고 equals() 함수를 사용하여 text3의 값과 'https://www.youtube.com/channel/UCuPOkAy1x5eZhUda-aZXUlg'이 같다면 아래의 링크로 접속된다.

 

http://www.suninatas.com/challenge/web24/chk_key.asp?id=(본인id)HooNeee&pw=(본인pw)????????&key=https://www.youtube.com/channel/UCuPOkAy1x5eZhUda-aZXUlg

 


 

'suninatas24' 파일을 apk 확장자로 변환 후, 스마트폰에 설치하고 id, pw, key를 입력해주자.

 

suninatas24 APP

 

정상적으로 입력하고 SEND!!! 버튼을 누르면 Auth_key가 나온다.

 

Solve!

 

Comments