본문 바로가기

전체 글241

[모바일 앱 취약점] Diva tutorial 8 - Input Validation Issues (Part 2) Input Validation Issues (Part 2) 풀이이다. 목표: URL 와는 별개로 민감한 정보의 접근을 시도해보세요. 일단 시험삼아 구글 주소를 불러와본다. Url을 불러오는 게 SSRF 취약점이나 include 취약점을 연상시켰다. 일단 URL 주소와 별개로 민감한 정보에 접근해야하니까 파일에 접근 가능한지 살펴보기로 했다. 무언가 잘 모를때 가장 빠르고 쉬운 방법은 통째로 구글링하는 것이다. 소스에 쓰인 함수는 Webview라는 기능으로 웹페이지를 app에 쉽게 삽입 가능한 기능이다. 파일 다운로드/업로드 기능에도 쓰일 수 있다고 한다. 이 기능은 Webview 취약점에 속하는 것 같다. 로컬 파일에 접근하기 위해선 로컬 파일 주소를 URL으로 바꾸는 과정이 필요하다. 로컬 파일 주소 .. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 7 - Input Validation Issues (Part 1) Input Validation Issues (Part 1)의 풀이이다. 목표를 확인해보면 유저이름을 알지 못한 채로 모든 유저의 데이터 ACCESS를 시도하는 것이다. 기본적으로 세 명의 기본 유저가 존재하고 문제는 한번의 검색에 3명의 정보가 모두 조회되어야한다. 일단 시험삼아 *를 입력하면 (*)라는 유저가 없다는 알림창을 확인할 수 있다. 소스코드를 확인하려고 했는데 잘 찾아보니 MainActivity라는 파일에 가이드라인처럼 어느 소스코드를 참고해야하는지 파일명이 나열되어있는 것을 확인했다. 위의 소스코드를 참초해 SQLInjectionActivity 파일을 참조해보면 세명의 디폴트 유저값이 저장되어 있는 것을 확인할 수 있다. 시험삼아 admin의 값을 입력해본다. 유저이름과 카드번호가 출력되는.. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 6 - Insecure data storage (Part 4) Diva tutorial 6 - Insecure data storage (Part 4) 에 대한 풀이이다. 취약 코드와 정보 저장 공간을 찾아야하며, 앞의 것과 비슷하다. 정보를 저장한 후 소스코드를 살펴보자. 눈에 띄는 것은 파일의 경로와 .uinfo.txt이다. 별도의 암호화 함수는 없다. 경로를 찾기위해 아래 파일 위치를 칭하는 듯한 26번 라인을 복사해 검색했다. File sdir = Environment.getExternalStorageDirectory(); 이는 외부저장소 절대경로를 뜻하는 것이라는 정보를 알게되었고 실제로 쓰임이 이와 같음을 확인하였다. 기본구조 ) Environment.getExternalStorageDirectory().getAbsolutePath(); 사용방법 ) Sav.. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 5 - Insecure data storage (Part 3) Insecure data storage(Part 3) 의 풀이이다. 앞과 같은 목표로 저장공간, 코드를 찾아내는 문제이다. 값을 입력해 저장한 후 소스코드를 살핀다. 코드를 보면 이번엔 정보가 파일로 저장되는 것을 알수있고, 역시 암호화하는 함수가 따로 지정되어있지 않아 평문으로 노출될 것이 예상된다. 애플리케이션 디렉토리로 가서 ls로 해당 파일을 찾아본다. 그럼 엔터를 누를때마다 생성된 uinfo - tmp라는 이름의 파일들을 발견할 수 있고 cat으로 확인 시 평문의 정보가 저장되어있음을 확인할 수 있다. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 4 - Insecure data storage (Part 2) Insecure data storage (Part 2)를 살펴본다. 들어가서 목표를 확인해보면 저번과 같이 민감한 정보가 어떻게/어디서 저장되는지와 관련 취약 코드를 찾는 것이다. 소스코드를 확인해보면, 역시나 암호화하는 함수가 따로 없으며, ids2 의 데이터베이스에 myuser 테이블을 만들어서 정보가 저장되는 것을 알 수 있다. Part1에서 /data/data 디렉토리에 databases 파일이 있었기 때문에 adb로 접속해본다. datadases 폴더에 전에 없던 ids2, ids2-journal 파일이 생성된 것을 확인할 수 있다. 원래는 sqlite3 명령어를 통해서 ids2 Database에 연결이 가능한데 나는 sqlite을 사용할수없어 cat으로 파일을 살폈다. 알아보기 어렵지만 id .. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 3 - Insecure data storage (Part 1) Diva 취약점 목록 중 Insecure data storage에 대한 풀이이다. 해당 문제를 보면 어디서/어떻게 정보가 취약하게 저장되는지와 취약하게 만드는 코드를 찾아야한다. 3rd party service 이름과 비밀번호를 입력하라고 하는데, 3rd party service는 제 3자 서비스로 정보를 저장한 후 로그인을 대행해주는 서비스이다. 정보를 입력하고 정상 저장을 확인한 후 어떻게 저장되는지 확인하기 위해 소스코드를 살펴본다. 해당 부분에 SharedPreferences의 함수를 사용하는 것을 알 수 있다. 소스코드 내에 따로 암호화 절차가 없어 평문으로 저장되는 것을 알 수 있다. SharedPreferences 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 안드로이드에서 기본적으.. 2022. 3. 19.
[모바일 앱 취약점] Diva tutorial 2 - Hardcoding Issues DIVA 취약점 목록 중 2 - Hardcoding Issues 의 풀이이다. 클릭해서 들어갈 시 목표에 하드코딩되어 있는 데이터가 어디있는지 찾으라는 목표가 보인다. 이를 위해 하드코딩이라는 개념의 정의를 살펴보자. 하드코딩이란 데이터를 코드 내부에 직접 입력하는 것이다. 기술적으로는 데이터가 실행 바이너리(exe 파일 등)에 합쳐져 있는 상태를 말한다. 프로그램의 소스코드에 데이터를 직접 입력해서 저장한 경우 모든 '상수'는 하드코딩이다. 즉 1에서 봤던 jadx 프로그램을 통해 데이터를 알아내면 된다. 해당 프로그램을 확인해보면, 보란듯이 제목인 HardcodeActivity 파일이 존재했고 Key값으로 보이는 값을 찾을 수 있었다. 대입해보면, 문제가 풀리는 것을 알 수 있다. 2022. 3. 18.
[모바일 앱 취약점] Diva tutorial 1 - Insecure logging DIVA 앱을 설치한 후 취약점 목록 중, 1 - Insecure logging을 선택한다. 목표를 보면 어디서 어떻게 로그되는지와 취약한 관련 코드를 찾는 것이다. 입력 창에 123456을 입력한 후 클릭버튼을 누르면 "An error occured. Please try again later"라는 알림 창이 뜬다. 안전하지 않은 로깅은 민감한 정보가 평문으로 로그파일에 남는다는 것으로 연결된 adb를 이용해 로그정보를 실시간으로 살펴보면 된다. adb logcat으로 찾을 시 많은 정보가 분별하기 어렵게 뜨기때문에 필터링 값을 같이 입렷하여 Diva-log만을 출력하게 하였다. adb는 이전 글에서 설정방법을 참고하길 바란다. adb logcat -s diva-log 해당 카드 번호 123456이 평문.. 2022. 3. 18.
[모바일 앱 취약점] Diva 환경 세팅 - LG G4 루팅 필요 프로그램 엘지) Lgup 프로그램 가이드 따르기https://m.blog.naver.com/dentzzang/221210626636 SKT LG G4 (F500S) 루팅 작년까지 사용하던 SKT LG G4 스마트폰을 차량용 티맵 네비로 변환시키기로 하였다. 차량 시동시 화... blog.naver.com 삼성) 오딘 프로그램 https://www.osamsung.com/kr/ 해당 기기의 twrp 파일 https://twrp.me/Devices/ 처음엔 원클릭 루팅앱을 7개정도 깔았는데 다 안먹길래 삼성 오딘 프로그램을 다들 사용하길래 이것도 무턱대고 따라했다. 하지만 G4에 맞는 가이드가 따로 있었고 Lg 기기는 LgUp 이라는 프로그램을 따로 사용해야했다. 기기 버전과 루팅을 함께 검색하는게 답.. 2022. 3. 17.