상세 컨텐츠

본문 제목

[mobile] fridaLab_frida challenge 7 write up

기술보안/Mobile:Android

by about_SC 2020. 1. 6. 14:11

본문

[mobile] fridaLab_frida challenge 7 write up

 

- 07. chall07Pin() 메소드를 브루트포스해서 chall07() 메소드로 확인하기
:  브루트포스해서 정상적인 값을 구하는 것이 포인트

 

소스코드를 보며 문제 7번을 보면
인자로 전달되는 문자열 값이 challenge_07.check07Pin의 인자로 그대로 전달되어
해당 값이 참인 경우 문제가 풀리게 된다.

해당 함수를 따라들어가보자.

 

check07Pin(str)은 인자로 전달된 str 값과 chall07 변수 값이 같을 경우 True 값을 반환하게 된다.
chall07 변수 값은 setChall07()를 통해 세팅된다.

 

MainActivity의 onCreate 생명주기 내에서 setChall07()함수가 호출되어 chall07 변수 값이 세팅됨을 확인할 수 있었다.
이제 스크립트를 작성해보자.

 

 

먼저, 전체적인 페이로드를 생각해보자.
1) Java.use를 사용해 클래스 객체를 생성하여 check07Pin 함수를 이용해 bruteForce를 진행해야 한다.

2) Java.choose를 사용해 인스턴스 객체를 생성하여 호출되지 않는 문제 chall07() 함수를 호출해야하며,
chall07() 함수에 bruteForce를 통해 구한 올바른 Pin 값을 삽입하여 문제풀이를 진행해야 한다.

따라서, 이를 기반으로 작성한 코드는 위와 같다.

 

위의 코드 실행 시 Flag 값이 cmd 창을 통해 구해지는 것을 확인할 수 있으며,

 

 

성공적으로 문제풀이가 이루어짐을 확인할 수 있다.

관련글 더보기