Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 9. 26. 00:32
FridaLab (Challenge 2) Wargame/FridaLab
728x90

이번 포스트에서는 FridaLab의 Challenge 2 문제에 대해 다루겠다.


문제를 실행하면 다음과 같다.

FridaLab

## 문제 해석 : 

Challenge 2의 문제 코드는 다음과 같다.

private void chall02() {
	this.completeArr[1] = 1;
}

chall02 함수를 실행하면 되는 것으로 보인다. 단 chall02가 private라는 점을 주의해야 한다.

## 문제 풀이 :  

우선 우리가 삽입할 JS code를 실행해줄 JSInjector를 작성해보겠다.

### JSInjector : 

import frida,sys
import argparse

def on_message(message, data):
   if message['type'] == 'send':
      print(message['payload'])
   elif message['type'] == 'error':
      print(message['stack'])

def get_messages_from_js(message, data):
   print (message['payload'])

def get_script(script_name):
   with open("./"+script_name, 'r') as f:
      script = f.read()
   return script

help_script = """
HELP
"""

package_name = "com.Early.touch_touch"

parser = argparse.ArgumentParser(description=help_script)
parser.add_argument('--script', required=True, help='JS File to Inject')
args = parser.parse_args()

device=frida.get_usb_device()
p1=device.spawn([package_name])

process_session=device.attach(p1)

device.resume(p1)

script = process_session.create_script(get_script(args.script))
script.on('message',on_message)
script.load()

sys.stdin.read()

이어서 공격 코드를 작성해보겠다.

### 공격 코드 : 

console.log("[+] Inject Success!") // 연결 확인

Java.perform(function () {
	// chall01
	var challenge_01_class = Java.use('uk.rossmarks.fridalab.challenge_01');

	challenge_01_class.chall01.value = 1;

	// chall02
	var MainActivity_class;

	Java.choose('uk.rossmarks.fridalab.MainActivity', {
		onMatch: function (classInstance) { // 찾으면 실행
			MainActivity_class = classInstance; // 클래스 정체 초기화
		},

		onComplete: function () { }
	});

	MainActivity_class.chall02();
})

 

### 실행 결과 :

공격 성공

이로써 FridaLab Challenge 2의 Crack를 마치겠다.

'Wargame > FridaLab' 카테고리의 다른 글

FridaLab (Challenge 6)  (0) 2022.09.30
FridaLab (Challenge 5)  (0) 2022.09.29
FridaLab (Challenge 4)  (0) 2022.09.28
FridaLab (Challenge 3)  (0) 2022.09.27
FridaLab (Challenge 1)  (0) 2022.09.25
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!