워게임/FridaLab FridaLab Write Up - Challenge 07. check07Pin()의 chall07 변수 검증을 무차별 대입 공격을 통해 통과하라. - 코드 분석 MainActivity challenge_07 MainActivity에서 challenge_07.setChall07()을 호출하여 chall07에 랜덤한 값을 삽입 후 challenge_07.check07Pin()에서 검증을 수행한다. challenge_07.setChall07() 반복문을 돌리기 위해 chall07 변수에 삽입될 값의 범위를 한번 알아보겠다. Math.random() * 9000이므로, 0 ~ 8999까지의 범위를 가진다. 하지만 뒤에 1000이 더해져서 최소 범위는 1000부터 시작이 된다. 즉, chall07의 값 범위는 1000 ~ 8999이다. 문제의 목표는 무차별 대입 공격을 수행하여 검증을 통과하라고 하였으니, MainActivity.chall07()의 파라미터에 반복문을 이용하여 값을 넣어서 검증을 통과하면 될 것이다. Write Up Java.perform(() => { console.log("\n* Hooking Start *") var challenge07 = () => { var challenge_07 = Java.use("uk.rossmarks.fridalab.challenge_07") Java.choose("uk.rossmarks.fridalab.MainActivity", { "onMatch": (instense) => { var pin = 1000 while (true) { if (String(pin) == challenge_07.chall07.value) { instense.chall07(String(pin)) break } pin++ } }, "onComplete": () => console.log("challenge_07 solved!") }) } // Hooking Function Call challenge07() }) 반복문으로 challenge_07.chall07의 값와 증가되는 값을 비교 후 맞다면, MainActivity.chall07()에 파라미터로 넘겨 검증을 통과하였다. 사실 challenge_07.chall07 값을 MainActivity.chall07()에 파라미터로 넘기면 바로 통과하겠지만, 그럼 Challenge 06과 같은 문제 풀이가 되어 이렇게 무차별 대입 공격을 시도하여 통과하라고 하는 것으로 보인다. 공유하기 게시글 관리 MSS 저작자표시 비영리 '워게임 > FridaLab' 카테고리의 다른 글 FridaLab Write Up - Challenge 08. 'Check' 버튼의 텍스트를 'Confirm'으로 변경하라. (0) 2022.12.15 FridaLab Write Up - challenge 06. 적절한 값을 사용하여 10초 후 chall06()를 동작시켜라. (0) 2022.12.15 FridaLab Write Up - Challenge 05. 항상 chall05()에 "frida"를 전송하라. (0) 2022.12.15 FridaLab Write Up - Challenge 04. chall04()에 "Frida"를 전달하라. (0) 2022.12.15 FridaLab Write Up - Challenge 03. Chall03()의 리턴 값을 True로 만들어라. (0) 2022.12.15 Contents 당신이 좋아할만한 콘텐츠 FridaLab Write Up - Challenge 08. 'Check' 버튼의 텍스트를 'Confirm'으로 변경하라. 2022.12.15 FridaLab Write Up - challenge 06. 적절한 값을 사용하여 10초 후 chall06()를 동작시켜라. 2022.12.15 FridaLab Write Up - Challenge 05. 항상 chall05()에 "frida"를 전송하라. 2022.12.15 FridaLab Write Up - Challenge 04. chall04()에 "Frida"를 전달하라. 2022.12.15 댓글 0 + 이전 댓글 더보기