[Insecure Bank] 안드로이드 백업 취약점
·
모바일 앱해킹(Android)/Insecure Bank
안녕하세요! 오늘은 '안드로이드 백업 취약점' 에 대하여 실습을 통해 알아보겠습니다. ['안드로이드 백업 취약점' 이란?]> 안드로이드 에선 백업 데이터를 사용자 PC에 저장할 수 있게 해주는 로컬백업을 지원하게 되었습니다. 이로인해 사용자는 전체 백업을 사용하여 설치된 어플의 apk 파일뿐만 아니라 관련 데이터,저장소의 파일 등을 USB를 통해 연결된 pc에 저장할 수 있게되었습니다. 하지만 android:allowBackup 속성 값이 'true'로 되어있을 경우 공격자 또한 백업데이터를 추출하는게 가능해지고 이 데이터를 분석하여 민감한 개인정보를 얻는것이 가능해집니다.1. 취약점 탐색> 인시큐어 뱅크를 디컴파일하여 AndroidManifest.xml 소스코드를 살펴보면 android:allowBac..
[Insecure Bank] 디버깅 취약점 & 런타임 조작 취약점
·
모바일 앱해킹(Android)/Insecure Bank
안녕하세요! 오늘은 '디버깅 기능 취약점' 그리고 '런타임 조작 취약점' 2개를 실습해보려고 포스팅하였습니다! 디버깅 취약점으로 인해 런타임 조작이 일어날 수 있어서 이 두개의 항목을 묶게 되었습니다! ['디버깅 취약점' 이란?]> Application Debuggable 취약점은 안드로이드 디버깅 모드의 설정 여부에 따라 발생합니다. AndroidManifest.xml 에 포함되는 속성인데 기본적으로 디버깅 모드는 앱이 배포될때 "false" 로 지정되어 있습니다. 하지만 개발중에 편의상 디버깅 옵션을 "true"로 해놓는 경우가 있는데 이 경우 앱의 중대한 보안 결함이 발생할 수 있습니다. ['런타임 조작' 이란?]> 앱이 실행되는 도중 메모리상에 악의적인 행동을 하는 취약점입니다. 메모리상에 올라가..
[Insecure Bank] 안드로이드 키보드 캐시 이슈
·
모바일 앱해킹(Android)/Insecure Bank
안녕하세요! 이번시간에는 '안드로이드 키보드 캐시 이슈' 에 관한 포스팅입니다. ['안드로이드 키보드 캐시 이슈' 란?]> 키보드 캐시 이슈는 사용자가 중요 정보를 클립보드에 저장하면 제삼자가 이러한 정보를 획득할 수 있는 취약점입니다. 키보드 캐시란, 안드로이드 TextView와 같은 컴포넌트에서 사용자가 중요 정보를 클립보드에 복사할 수 있을때 임시로 복사한 데이터를 저장하는 곳입니다. 이 기능을 상당히 편하지만 , 공격자 또한 이 기능을 악용하여 중요 정보를 붙여넣을 수 있으므로 다른 사용자의 인증 정보를 활요하여 별다른 인증 절차 없이 공격자도 인증에 성공할 수 있습니다.1. 취약점 진단1. 우선 NOX기기에 Clipper 라는 어플을 다운로드 받아주세요. 그냥 구글스토어에서 받을 수 있으니 검색..
[Insecure Bank] 안전하지 않은 로깅 메커니즘 취약점
·
모바일 앱해킹(Android)/Insecure Bank
오늘은 '안전하지 않은 로깅 메커니즘' 취약점에 관하여 Insecure Bank앱 실습을 통해 알아보겠습니다! ['안전하지 않은 로깅 메커니즘' 이란?]> 로그란, 서버에서 운영되는 서비스들이 실행되는 상태나 특정 프로그램을 사용한 사용자의 행위나 흔적을 파일이나 출력을 통해 남기는 행위를 말합니다. 그런데 이런 로그에 사용자의 개인정보 가령 비밀번호,아이디,계좌번호 등이 출력이 되버리면 정보가 유출될 수 있기 때문에 필요없는 로그정보는 남기지 말아야 합니다.1. 취약점 진단1. 우선 인시큐어 뱅크 어플을 로그인해줍니다. 2. 이후 nox_adb shell 로 녹스기기에 접근하셔서 해당 명령어를 통해 특정 어플의 log를 확인하실 수 있습니다. 사진을 보시면 로그인한 아이디&패스워드가 평문으로 저장되어 ..
[Dreamhack] Type c-j -write up (타입 저글링 기법)
·
워게임 문제풀이/Dreamhack
이번시간엔 Dreamhack 워게임 문제인 Type c-j 에 대하여 작성해보도록 하겠습니다!1. 취약점 탐색1. 우선 페이지는 다음과 같이 이루어져 있습니다. ID 와 Password 를 우회하면 flag 가 나오는 형식같습니다. 그러면 소스코드를 한번 훑어보겠습니다!2. 일단 check.php 의 코드를 살펴보니 $id , $pw 값을 설정해주는 부분이 있습니다. $id 값은 getRandStr()을 통해 난수의 문자열을 받아오고 , $pw 는 1이라는 문자열을 sha1 암호화를 거친 값을 저장해주는것 같습니다. 그러면 일단 $pw 값은 1을 sha1로 암호화만 시키면 얻을수 있으니 패스워드 값은 알아낸 것입니다.3. 그 바로밑에 있는 코드를 살펴보시면 "입력하는 값은 id는 10글자 , passwo..
[Dreamhack] XSS Filtering Bypass - Write up
·
워게임 문제풀이/Dreamhack
이번시간은 Dreamhack 사이트의 워게임중 XSS Filtering Bypass 문제를 살펴보도록 하겠습니다![취약점 탐색] 1. 우선 메인페이지는 이런식으로 이루어져 있습니다. 한번 차례대로 살펴보겠습니다.2. 우선 vuln(xss) page 를 클릭하니 이런 이미지가 나옵니다. 아마 xss 에 이용하라고 넣어둔 것 같습니다.3. memo 를 클릭하니 이런 페이지가 나왔습니다. 아마 get요청으로 memo 파라미터에 넣은 값을 여기서 출력해주는건가 봅니다... 그러면 나중에 이 점을 이용하여 flag 값을 출력하도록 이용해볼 수 있을것 같습니다!4. flag 페이지로 들어왔습니다. 아마 저기에 param 값을 넣고 제출을하면 admin 계정이 저 링크로 접속하는 방식인가 봅니다. 어느정도 페이지 구..
[Insecure Bank] 메모리 내 민감한 정보 저장
·
모바일 앱해킹(Android)/Insecure Bank
안녕하세요! 오늘은 '메모리 내 민감한 정보 저장' 에 대하여 인시큐어 뱅크앱을 통한 실습으로 알아보는 포스팅입니다. ['메모리 내 민감한 정보 저장' 이란?]> 메모리는 주 기억 장치라고도 하며 물리적 메모리인 '램(RAM)'을 가리킵니다. 애플리케이션이 실행 중에 필요한 정보들이 여기에 저장기 때문에, 저희가 입력하는 모든 값과 앱의 모든 정보들이 메모리에 적재됩니다. 계속 적재되어 있는것은 아니고 메모리는 휘발성 이기 때문에 앱 종료시 RAM에 저장된 데이터들도 삭제됩니다! 문제는 이 데이터를 삭제전에 추출하기만 한다면 저희가 입력한 값들이 저장되어 있기때문에 보안에 매우 위험할 수 있다는 것입니다!  "메모리 포렌식" 을 통해 획득 가능한 정보분류설명프로세스 , 스레드 정보프로그램이나 파일이 실행..