본문 바로가기

App21

injured.apk | FLAG TWO - EXPORTED ACTIVITY 2번은 첫 화면에서 우회하여 다른 화면을 불러올 수 있다고 알려준다. 147번 라인을 보면 Manifest에서 exported 값이 true로 설정되어있는 것을 볼 수 있다. 인텐트를 허용하면 다른 곳에서 이 활동을 호출할 수 있다. 보통 false로 기본값 설정이 되어있지만, 외부에서의 접근을 허용할 때 true로 설정해준다. exported가 허용되어있기 때문에 adb로 am 명령어를 사용하여 패키지명과 b25lActivity를 입력하면 외부에서 activity 관리자로 접근하여 실행시킬 수 있다. 명령어를 통해 접근할 수 있으므로 인가된 허용자만 접근이 가능한게 아니라는 것이 노출되었기 때문에 취약점이라고 판단한다. 위와 같이 입력하면 flag가 나타난다. 2021. 9. 13.
injured.apk | FLAG ONE-LOGIN AndroidManifest에서 1번 문제의 코드가 적혀있는 FlagOneLoginActivity 파일을 확인해본다. onCreate 함수가 실행된 후, submitFlag 함수가 실행된다. 60~61번 라인에서 editText 변수에 우리가 입력하는 값을 받아오는데, 62번 라인에서 if문을 통해 해당 값이 만약 "F1ag_0n3"이라면 FlagOneSuccess 함수를 실행시켜 intent 변수에 저장한다. 66번 라인에서 intent에 저장된 해당 값이 화면에 나타나게 된다. 2021. 9. 13.
injured.apk | XSS 다음과 같이 태그를 입력할 경우 자바스크립트가 실행되는 것을 확인할 수 있다. XSS가 실행되는 부분의 코드를 확인하기 위해 XSSTextActivity 파일을 열어봤다. 19번 라인에 인자가 두 개가 들어간다. 뒷 인자가 해당 함수를 통해 문자열로 전달된다. DisplayPostXSS 파일을 확인해보면 17번 라인의 아이디 값과 XSSTextActivity 파일의 19번 라인 아이디 값이 같다. stringExtra 변수에 해당 값을 불러온다. 20번 라인은 자바스크립트를 허용하는 함수이다. 해당 값이 true로 설정되어있고, apk 내에서 내가 입력한 스크립트가 문자열로 인식되어 자바스크립트가 동작하기 때문에 XSS가 실행된다. 2021. 9. 13.
injured.apk | smali 변조 안드로이드는 MainActivity의 onCreate 함수를 시작으로 동작한다. jadx를 사용하여 MainActivity를 확인하고, 원하는 값을 변조한다. 우선 AndroidManifest.xml 파일을 확인하면 메인으로 확인되는 코드가 있다. 위 박스에 적혀있는 MainActivity를 들어가보면 프로그램이 시작되는 onCreate 함수를 볼 수 있다. smali 코드 변조를 위해 apk easy tool로 디컴파일하고, smail/b3nac/apk명 폴더 속 MainActivity.smali 파일을 다음과 같이 수정한다. 사진 속 체크 된 내용을 수정 및 추가해줬다. ccit test 라는 문장이 출력되게 하는 smali 문법이다. .locals 0을 1로 바꿔준 이유는 레지스터를 사용하기 위함이.. 2021. 9. 13.
안드로이드(Nox) Burp 프록시 환경 구성 | Burp 인증서 ※ Frida가 PC와 모바일(에뮬레이터 - Nox 사용)에 동일 버전으로 설치되어있다는 전제 하에 진행된다. 1. Burp 인증서 설치 1.1. Burp Suite에서 다음과 같이 진행한다. Next 버튼을 누른 후 나타나는 Select file을 통해 인증서가 저장될 경로를 지정하여 파일 명을 위와 같이 확장자가 der인 이름으로 지정해준다. 1.2. OpenSSL을 이용하여 시스템 폴더에 형식 변환한다. http://slproweb.com/products/Win32OpenSSL.html 위 링크를 통해 OpenSSL을 다운로드한다. OpenSSL이 설치된 경로에서 bin 폴더 안에 인증서를 옮겨준다. 1.3. OpenSSL 명령어를 통해 pem 파일로 변환한다. openssl x509 -inform.. 2021. 9. 13.
DLL에서 DLL 불러들이기 보호되어 있는 글 입니다. 2020. 4. 11.
il2cppdumper 사용법 il2cppdumper를 사용하기 위해서는 apk를 디컴파일 시켜야한다. 방법은 아래 링크에서 확인할 수 있다. https://lyk00331.tistory.com/26 apk 디컴파일 후 mono와 il2cpp 구분 법 1. apk를 다운받는다. 2. apktool을 이용해서 디컴파일을 시킨다. apktool은 구글에 검색하면 다운받을 수 있다. 3. 디컴파일 시키면 아래 사진과 같이 각 apk마다 폴더가 나온다. 4. apk폴더 → lib폴더 &ra.. lyk00331.tistory.com il2cppdumper를 실행 후, 디컴파일한apk폴더/lib/armeabi-v7a에서 해당 apk의 libil2cpp.so파일을 선택한다. 이어서 디컴파일한apk폴더/assets/bin/Data/Managed/M.. 2020. 3. 23.
apk 디컴파일하지 않고 쉽게 mono와 il2cpp 확인하는 방법 이전 포스팅에서 apktool을 이용해 디컴파일 후 mono와 il2cpp를 확인하는 방법을 소개했다. 이번엔 디컴파일하지 않고, mono와 il2cpp를 확인하는 방법에 대해 포스팅하겠다. 우선 이 방법을 따라오기 위해서는 HxD라는 프로그램이 필요하다. HxD는 구글에 검색하면 다운받을 수 있다. apk를 준비한다. apk파일을 우클릭 후, 연결프로그램을 HxD로 지정하여 열어준다. 아래 사진과 같이 떴다면, 컨트롤+F를 통해 문자열을 찾는다. libil2cpp.so 를 검색했을 때 존재하면, il2cpp방식이다. libmono.so 를 검색했을 때 존재하면, mono방식이다. 위 방식처럼 굳이 디컴파일 후, 폴더에 들어가서 찾지 않아도, apk파일과 HxD 프로그램만으로 mono와 il2cpp를 확.. 2020. 3. 22.
apk 디컴파일 후 mono와 il2cpp 구분 법 1. apk를 다운받는다. 2. apktool을 이용해서 디컴파일을 시킨다. apktool은 구글에 검색하면 다운받을 수 있다. 3. 디컴파일 시키면 아래 사진과 같이 각 apk마다 폴더가 나온다. 4. apk폴더 → lib폴더 → 아무폴더 경로로 들어가면, 1) mono인 경우, libmono.so파일이 존재한다. 2) il2cpp인 경우, libil2cpp.so파일이 존재한다. 위와 같은 방법으로 mono와 il2cpp를 구분할 수 있다. 2020. 3. 22.