Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Text
- php
- 백준
- CTF
- Web
- 인코그니토
- cryptography
- Forensics
- Database
- writeup
- HackCTF
- 정렬
- 사칙연산
- Digital Forensics
- wargame
- misc
- Incognito
- N0Named
- Network
- Web Hacking
- xcz.kr
- 그리디 알고리즘
- 써니나타스
- 수학
- 문자열
- Python
- SuNiNaTas
- C
- 구현
- MySQL
Archives
- Today
- Total
보안을 그리다, 훈이
[Pwnable] 써니나타스(SuNiNaTaS) 24번 문제 Write Up 본문
System 분야 써니나타스(SuNiNaTaS) 24번 문제 풀이입니다.
문제에 진입하면 위와 같이 다운로드할 수 있는 파일 링크가 주어진다.
'suninatas24' 파일을 설치한 후 헤더 시그니처를 살펴보자.
헤더 시그니처는 504B0304 / PK로 압축 파일인 것을 알게 되었으니 압축을 풀어보자.
파일 및 디렉토리 구성을 보니 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를 입력해주자.
정상적으로 입력하고 SEND!!! 버튼을 누르면 Auth_key가 나온다.
Solve!
'Security > Wargame' 카테고리의 다른 글
[Web Hacking] HackCTF Hidden(50p) Write Up (0) | 2021.12.09 |
---|---|
[Web Hacking] HackCTF /(50p) Write Up (0) | 2021.12.09 |
[Pwnable] 써니나타스(SuNiNaTaS) 16번 문제 Write Up (0) | 2021.12.05 |
[Forensics] 써니나타스(SuNiNaTaS) 21번 문제 Write Up (0) | 2021.12.02 |
[Forensics] 써니나타스(SuNiNaTaS) 19번 문제 Write Up (0) | 2021.12.01 |
Comments