본문 바로가기

전체 글

(81)
FridaLab 1 ~ 4 풀이 FridaLab 01변수와 메서드 모두 static이므로 Java.use를 사용해서 후킹setImmediate(function() { Java.perform(function(){ // Challenge 01 var chall_01 = Java.use("uk.rossmarks.fridalab.challenge_01"); chall_01.chall01.value = 1; console.log("Sloved Chall01"); })})    FridaLab 02static 메소드가 아니므로 인스턴스를 생성한 후에 호출 Java.choose를 사용해서 후킹setImmediate(function() { Java.perform(function(){ // Challenge 02 Java.choose("u..
Frida 기본 정리 | Frida란?, 기본 문법, CLI 활용 Frida란? 안드로이드 앱을 비롯해 다양한 플랫폼에서 실행되는 애플리케이션의 동작을 조작하는데 사용되는 동적 코드 분석 툴 대표적으로 프로세스를 후킹하는 기능을 제공한다.(후킹은 정보를 가로채고, 실행흐름을 변경하는 등 원래와 다른 기능을 제공하게 하는 기술이다.) Frida 기본 문법Java.use()변수와 메소드에 액세스 할 수 있는 클래스 객체를 반환클래스가 어떤 메소드와 변수를 가지고 있는지 등 클래스의 구조와 동작에 대한 정보와 조작 기능을 제공함 static 변수 및 메소드는 프로그램 실행 시 메모리에 자동으로 올라오므로 인스턴스를 생성해서 호출할 필요가 없음. 이때 Java.use 를 사용해서 후킹함 예시var Class = Java.use("uk.rossmarks.fridalab.chal..
2024년 1회차 정보보안기사 필기, 실기 동차합격 후기 | 알기사, 공부방법, 공부 기간 드디어 결과가 나왔다 시험을 준비하는 동안 무조건 동차합격해야지라는 마음으로 공부했어서 여기서 떨어지면 다음 시험을 어떻게 준비해야하나 싶었다 그냥 생각조차 하기 싫었음ㅡㅡ 아무튼 결과는 생각보다 엄청 널널하게 합격했다ㅋㅋ 이렇게 점수를 후하게 주실줄은 몰랐다 한 달이 지난 지금에서야 실기를 복기해보면 단답형은 예상했던것 보다 훨씬 쉽게 나왔다 기본서와 기출 교재를 풀어봤다면 충분히 풀 수 있을 정도의 난이도였는데 보기까지 줘서 거져주네 싶었다 근데 서술형으로 넘어가자 마자 첫번째 문제부터 처음 보는 개념이 나왔다 무슨 산출물 4가지를 작성하는 문제였는데 이건 실기 책에도 없었고 기출에서도 본 적 없었지만 1점이라도 받을라고 소설을 썼다 근데 점수는 못받았을듯 나머지 서술형은 그래도 무난했다 Ping으로..
[DIVA] Input Validation Issues - Part 1 (입력값 검증 부재) | 안드로이드 앱 취약점 실습 입력값 검증 부재 취약점은 사용자로부터 입력받은 데이터를 제대로 검증하지 않아 발생하는 보안 취약점이다. 악의적인 사용자가 의도적으로 조작된 데이터를 입력하여 시스템 오류, 데이터 유출 등 다양한 문제를 일으킬 수 있다.입력값 검증 부재의 대표적인 취약점으로 웹 해킹때 배웠던 SQL Injection과 XSS가 있다. 취약점을 찾아보자목표 : 유저 이름을 모르는 상태로 모든 유저의 정보를 access 해야 한다. 유저는 총 3명이고, 단 한 번의 검색으로 모두 확인해야 한다.의미 없이 123을 입력했떠니 not found라고 뜬다. 이 상태에서는 유저 정보도 모르고 아무것도 확인할 수 없으니  로그캣 정보를 이용해보기로 한다.싱글쿼터를 넣고 검색했더니 로그캣에 SQL 쿼리문이 그대로 뜬다. 조건절을 참으..
[DIVA] Insecure Data Storage - Part4 (안전하지 않은 데이터 저장) | 안드로이드 앱 취약점 실습 안전하지 않은 데이터 저장 Part 4는 Part 1 ~ 3과 다르게 외부 저장소에 중요 정보가 저장되는 취약점이 있다.외부 저장소는 모든 앱에서 접근할 수 있기 때문에 중요한 정보가 저장되면 안된다. 앱을 실행하고 취약점을 찾아보자 임의로 아이디와 패스워드를 입력하고 SAVE 버튼을 누르니 저장에 성공했다는 알림 메시지가 뜬다. 그럼 이제 내 계정 정보가 외부 저장소에 저장됐는지 확인해보자 adb shell로 안드로이드 쉘에로 이동 후 외부 저장소 경로인 /sdcard로 이동한다.ls -al 해보니 최근 수정 날짜가 오늘인 .uinfo.txt 파일이 보인다.  cat 명령어로 파일 내용을 확인해 보니 방금전 입력한 아이디와 패스워드가 저장되어있다.   대응방안중요 정보는 내부 저장소(/data/data..
[DIVA] Insecure Data Storage - Part2 (안전하지 않은 데이터 저장) | 안드로이드 앱 취약점 실습 안전하지 않은 데이터 저장 취약점은 중요정보(패스워드, 거래정보, 계좌정보 등)가 내부 저장소에 평문으로 저장될 때 발생한다. 데이터가 암호화되지 않고 평문으로 저장된다면 단말기가 악성코드에 감염되거나, 공격자가 앱에 접근할 수 있는 권한을 획득했을 때 중요 정보들을 탈취할 수 있다. 아무 아이디와 패스워드를 입력하고 SAVE 버튼을 누르니 자격증명이 저장되었다는 메시지가 뜬다.   우선 adb shell로 안드로이드 쉘에 접근한 후 DIVA 앱 패키지 디렉터리로 이동한다. 안전하지 않은 정보 저장 취약점에서 주로 확인해봐야할 디렉터리는 shared_prefsdatabases 이 두개다. part1 에서는 shared_prefs 디렉터리에서 취약점을 발견했으니 이번에는 databases를 확인해보자 저장..
[DIVA] Insecure Data Storage - Part1 (안전하지 않은 데이터 저장) | 안드로이드 앱 취약점 실습 안전하지 않은 데이터 저장 취약점은 중요정보(패스워드, 거래정보, 계좌정보 등)가 내부 저장소에 평문으로 저장될 때 발생한다. 데이터가 암호화되지 않고 평문으로 저장된다면 단말기가 악성코드에 감염되거나, 공격자가 앱에 접근할 수 있는 권한을 획득했을 때 중요 정보들을 탈취할 수 있다.  아이디와 패스워드를 입력하고 SAVE 버튼을 누르니 자격증명이 저장되었다는 메시지가 뜬다.  설치된 앱 패키지들 저장된 /data/data로 이동하여 DIVA 패키지 이름(jakhar.aseem.diva)을 확인 후 해당 디렉터리로 이동한다. ls -al 명령으로 저장된 파일 목록을 확인할 수 있다.  그 중 설정 파일이 저장되는 shared_prefs 디렉터리로 이동해본다. shared_prefs 파일은 앱 실행동안 필..
[DIVA] HardCoding Issues(하드코딩 이슈) | 안드로이드 앱 취약점 실습 하드코딩 취약점은 소프트웨어 개발에서 중요한 정보(비밀번호, API 키, 관리자 id, pw 등)를 소스 코드 내부에 직접 넣는 실수로 발생한다. 하드코딩된 비밀번호나 암호키 등 중요정보는 소스 코드를 확인할 수 있는 모든 사람이 액세스할 수 있다. 이는 내부자 위협 뿐만 아니라 소스 코드가 공개적으로 유출되었을 경우 외부 공격자에게도 정보가 노출될 수 있는 위험이 있다.  아무 정보 123123을 입력하고 ACCESS 버튼을 눌러봤더니 지옥에서 보자는 무서운 경고 메세지가 뜬다. 아무 값이나 일일히 대입해보면서 액세스를 할 수는 없으니 소스코드에 저장된 중요 정보를 확인해봐야 할 것이다.  GDA로 apk 파일을 디컴파일해서 HardcodeActivity 파일의 소스코드를 보면  access 함수에서 ..