2. 하드 코딩 된 중요 정보
·
프로젝트/AOS 모바일 앱 모의해킹
1. 하드코딩 된 중요 정보○ 하드코드란 프로그램 소스 코드 내에 데이터를 직접 입력해서 저장한 경우를 뜻함○ 중요한 정보(관리자 계정, 암호화키 등)가 소스 코드 내에 노출된 경우 취약점○ 개발 편의를 위해 입력받은 값을 소스 코드 내에 저장해서 발생하는 경우가 많음○ 안드로이드 앱은 디컴파일이 가능하여 중요 정보를 코드 내 주석 등으로 노출할 경우 쉽게 확인 가능 ○ 정적분석 + 코드 분석● apk 파일을 자바(코틀린) 파일로 디컴파일 후 분석하는 방법으로 취약점은 진단 2. 원본 파일이 있을 경우안드로이드 스튜디오 설치 : https://developer.android.com/studio?hl=ko Android 스튜디오 및 앱 도구 다운로드 - Android 개발자  |  Android Studi..
1. InsecureBankv2 앱 소개 및 설치(가상 은행 앱)
·
프로젝트/AOS 모바일 앱 모의해킹
1. InsecureBankv2 소개○ 인시큐어뱅크는 모바일 뱅킹 취약점 진단을 위한 테스트 용도로 제작된 애플리케이션○ 보안 전문가 및 개발자가 취약한 앱을 테스트하여 안드로이드 보안 문제를 학습할 수 있도록 제작됨○ 총 25개의 취약점을 테스트 할 수 있으며, 꾸준히 취약점이 업로드 되고 있음  현재 업데이트 안함 ○ 인시큐어뱅크는 서버, 안드로이드 애플리케이션 소스, APK 파일 등으로 구성구성요소설명AndroLanServer.zip● 인시큐어뱅크 백엔드 서버InsecureBankv2.apk●  인시큐어뱅크 안드로이드 애플리케이션Source code●  인시큐어뱅크 안드로이드 애플리케이션 소스 2. Anaconda Python 설치Anaconda Python 설치 주소 : https://www.an..
6. 모바일 취약점 진단 항목
·
기반 지식/Android
1. OWASP Mobile TOP10OWASP Mobile TOP10 출처 : https://owasp.org/www-project-mobile-top-10/ OWASP Mobile Top 10 | OWASP FoundationOWASP Mobile Top 10 on the main website for The OWASP Foundation. OWASP is a nonprofit foundation that works to improve the security of software.owasp.org ○ 모든 서비스는 이제 '모바일'로 통함○ 하지만 서버는 웹 서비스와 동일한 곳을 바라보고 있음○ 모바일 서비스도 OWASP TOP10 기준이 존재함
5. 녹스(Nox Player) 가상 애뮬 설치
·
기반 지식/Android
1. 취약한 앱 설치를 위한 녹스(Nox Player) 가상 애뮬 설치녹스(Nox Player) 가상 애뮬 설치 사이트 : https://www.bignox.com/ Noxplayer – Fastest and Smoothest Android Emulator for PC & Mac – Free and SafePlay the most popular mobile games and run apps on PC with NoxPlayer, the best Android Emulator. Supports Android 9. Compatible with Windows & Mac. Much faster and more stable.www.bignox.com
4. 안드로이드 앱 구조
·
기반 지식/Android
1. APK 파일 구조○ 안드로이드 앱 확장자는 APK(ZIP으로 생각하면 편함)로 다양한 파일과 폴더가 압축되어 있는 파일이다.○ 위 그림은 압축되기 전 APK 파일의 폴더 구조를 확인할 수 있다.○ 모바일에서는 APK 파일을 압축해제 한 뒤 사용한다고 보면 편함○ APK 파일을 압축 프로그램으로 해제하면 폴더 및 파일 추출 가능 구성 요소설명AndroidManifest.xml● 앱에 대한 구성 세부 정보가 포함된 매니패스트 파일classes.dex● 개발자가 작성한 소스코드에서 생성된 Dalvik Bytecode가 포함됨resources.arsc● 컴파일 된 리소스가 포함됨res● resource.arsc에서 제외된 정보를 포함하는 디렉터리● 애플리케이션에 필요한 리소스가 포함됨● 앱 아이콘과 같은 ..
AddHandler와 AddType의 이해 (feat. Apache)
·
기반 지식/웹 어플리케이션
1. htaccess 파일Apache의 .htaccess 파일 : https://httpd.apache.org/docs/2.4/ko/howto/htaccess.html 아파치 투토리얼: .htaccess 파일 - Apache HTTP Server Version 2.4아파치 투토리얼: .htaccess 파일 이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요. .htaccess 파일을 사용하여 디렉토리별로 설정을 변경할 수 있다. .htaccess 파일(httpd.apache.org ○ 웹 서버는 클라이언트 요청을 처리하기 위해 다양한 설정 옵션을 제공○ 특히 Apache 서버에서는 파일 확장자와 처리기를 연결하거나 MIME 타입을 정의○ 이를 통해 클라이언트 요청을 처리함○ ..
3. 안드로이드 디바이스 디렉터리 구조
·
기반 지식/Android
1. 디렉터리 구조디렉터리설명/● 루트(root) 파일 시스템 디렉터리● 부트와 관련된 설정파일을 참고하여 초기 프로세스 정보가 포함/system● 안드로이드 운영체제 홈 디렉터리● 안드로이드 UI 및 사전에 설치된 앱이 포함되고 운영체제 파일이 존재/data● 사용자 앱 상태 정보가 포함된 파일 시스템 디렉터리● 앱들이 저장되어 있는 공간 - 취약점 진단시 많이 보는 곳 ● APK 설치 시 디렉터리에 많이 저장됨● 포렌식 분석 시 /cache● 자주 사용하는 ㄴ데이터 및 앱 컴포넌트를 저장하는 디렉터리로 읽기/쓰기/ 권한 존재● 브라우저 캐시같이 일시적인 사용자의 상태 정보가 포함 2. 앱 설치 디렉터리 확인디렉터리설명/system/app● 시스템에 의해 미리 설치된 앱 경로/data/app● 사용자에..
Proc Filesystem
·
기반 지식
파일설명/proc/self- 현재 실행중인 프로세스 정보 확인- 작성한 프로그램의 pid를 경우 /proc/self로 접근  /proc//maps- maps 파일은 프로세스의 메모리 주소공간의 정보를 제공 /proc//cmdline- cmdline 파일은 프로세스의 전체 argv를 포함 /proc//environ- 프로세스의 현재 environment를 확인- 프로세스의 스택 메모리와 바로 연결되어 있- 프로세스의 현재 환경변수 설정값을 알아야 할 때 유용하게 사용 가능- API KEY의 경우 보통 해당 위치에 저장됨 /proc//mem- 프로세스의 매핑된 메모리 정보를 보여줌 /proc/- 프로세스가 현재 가지고 있는 File descriptor를 가리키는 심볼릭 링크가 들어있음- 파일의 이름은 Fil..
strcmp
·
기반 지식/웹 어플리케이션
PHP 온라인 실습 사이트 : https://onlinephp.io/ PHP Sandbox - Execute PHP code online through your browser onlinephp.io strcmp 함수는 문자열을 비교해 -1 또는 0 또는 1을 반환하는 함수strcmp('a', 'b') => -1 strcmp('b', 'b') => 0 strcmp('c', 'b') => 1 ※ strcmp는 배열과 문자열을 비교할 경우 NULL(0) 출력 var_dump 함수는 변수의 데이터 유형(type)과 값(value)을 포함하여 자세한 정보를 출력함strcmp() 함수 인자에 배열이 들어갈 경우 NULL 값을 반환NULL과 0을 비교할 경우 TRUE를 반환  strcmp 취약점 실습 : https:..
2. 안드로이드 앱 진단 환경의 이해 및 설치
·
기반 지식/Android
1. JVM & DVM ○ 자바 가상머신(Java Virtual Machine, JVM - Stack-based )    ● JVM은 "자바 바이트 코드"를 실행하기 위한 자바 가상 머신     ● "자바 바이트 코드"는 JVM이 이해할 수 있는 언어로 JVM만 설치되어 있으면, 어떤 운영체제서도 실행 가능     ● 즉, 운영체제에 상관없이 JVM이라는 가상 머신에서 "자바바이트" 코드를 실행할 수 있음    ● JVM은 플랫폼에 의존적        - 리눅스, 윈도우, macOS 등 각각의 운영체제에서 JVM은 각각 다름    ● "자바 바이트 코드"는 플랫폼에 독립적        - 컴파일된 자바 바이트 코드는 어떤 JVM에서든 동작이 가능함     ● 정리 : JVM 플랫폼은 다를 수 있지만, "..