일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- NTFS
- 인시큐어뱅크
- igoat
- diva
- beebox
- vulnhub
- elasticsearch
- SQL Injection
- 안드로이드
- Volatility
- lord of sql injection
- XSS
- Suninatas
- kibana
- otter
- Docker
- foremost
- base64
- ESXi
- 2018
- 파이썬
- MFT
- InsecureBank
- logstash
- Strings
- ctf
- Reflected XSS
- Openstack
- CTF-d
- frida
- Today
- Total
Information Security
Fridalab - Run chall06() after 10 seconds with correct value 본문
Fridalab - Run chall06() after 10 seconds with correct value
HackingPractice 2020. 5. 13. 20:02Navigation -> Text search에서 메소드를 찾았다.
chall06() 메소드에 int 정수형 값을 주고 if문에서 true가 된다면 문제를 해결하는 형태를 갖고 있다. if문 내부의 challenge_06.confirmCahll06(i) 값이 true가 되어야 한다.
confirmChall06(int i) 메소드를 보면 두 가지 조건을 충족해야 true를 return 반환 할 수 있다. i == chall06, system.currentTimeMillis() > timeStart + 10000 -> 10초 지나야지만 참인 결과를 반환한다.
1. i == chall06
- chall06 value 찾기,
- i == chall06 -> confirmchall06이 받고 있는 i 값을 chall06이라는 값으로 전달
2. system.currentTimeMillis() > timeStat + 10000
- setTimeout(fn, delay) api 함수 사용
- delay에 시간을 준다.
- delay에 10000를 주면 내부 로직 (fn)이 실행된다.
addchall 검색하여 메소드 위치를 찾았다,
MainActivity에서 내부 i값을 setting 하고 있는 것을 확인할 수 있다. Random 함수를 사욯하여 복잡하다. chall06 값을 confirmchall06에 반환해주도록 한다.
addChall06에 대한 클래스 객체 가져오기 addchall06 후킹 시 기존 로직 삭제, 해당 메소드가 실행될 때마다 MainActivity에 대한 인스턴스 값을 사용, chall06() 메소드에 addChall06에서 만든 변수 값을 넣어주면 자동으로 클래스 내부에 있는 인자 값으로 Chall06 값이 반환된다.
해당 자바스크립트 코드를 실행하면 Solved Challenge 06 문자열을 확인할 수 있다.
FridaLab 앱을 확인하면 6번 문제가 해결된 것을 알 수 있다.
'모바일 > Frida' 카테고리의 다른 글
FridaLab - Change 'check' button's text value to 'Confirm' (0) | 2020.12.16 |
---|---|
FridaLab - Bruteforce check07Pin() then confirm with chall07() (0) | 2020.12.15 |
FridaLab - Always send "frida" to chall05() (0) | 2020.05.11 |
FridaLab - chall04() 메소드에 frida 문자열 전송하기 (0) | 2020.05.07 |
FridaLab - Make chall03() return true (0) | 2020.05.06 |