본문 바로가기

40./42. iOS

[DVIA] 01. Insecure Data Storage

[DVIA] 01. Insecure Data Storage


Insecure Data Storage는 중요한 데이터를 적절한 보호없이 장치 내에 저장할때 발생하는 취약점입니다.


011. Plist


/var/mobile/Application 디렉토리는 iOS 모바일 앱이 설치되는 샌드박스 저장 공간으로 iDevice에서 사용자가 설치한 모든 모바일 앱에 대한 정보 및 실행 파일이 존재한다.

프로퍼티 리스트 (property list) 는 Mac OS X, iOS, NeXTSTEP, GNUstep 프로그래밍 소프트웨어 프레임워크 등에 이용되는 객체 직렬화 를위한 파일 이다. 또한 . plist 라는 확장자 를 가지므로, 보통 plist 파일이라고 하는 경우가 많다. 프로퍼티 리스트 파일은 보통 사용자의 설정을 저장하는데 쓰인다. 또한, 번들과 애플리케이션 소프트웨어 정보를 저장하기 위해서도 사용되고, 이전 맥 OS 에서는 리소스 포크 정보를 저장하는데에 사용되었다.

- 위키백과


username/passwd 입력후 "Save in Plist file"을 누른다.


해당 정보는 앱 샌드박스(application sandbox) 디렉토리 내 plist 확장자를 가진 파일에 저장된다.

간단하게 plist를 보는 프로그램은 다양하지만 iRET을 통하여도 plist 정보를 확인 가능하다.



012. NSUerDefaults


NSUserDefaults을 사용하여 저장하는 모든 정보는 암호화되지 않은 형태로 저장된다.


해당 정보는 하위 경로에 저장된다.

Library -> Preferences -> $AppBundleld.plist

중요 정보를 저장할때 NSUserDefaults를 사용하는건 좋은 방법이 아닌걸 확인 가능하다.



013. Keychain


Apple devices는 비밀번호 관리 기능으로 유용하게 사용하는 키체인(KeyChain)을 이용한다. 키체인은 dump를 이용하여 획득이 가능하며, 해당 정보는 웹 사이트 로그인정보, 신용카드 정보, 무선네트워크 정보 및 모바일 앱 설정에 따라서 앱 계정 정보가 저장 가능하다.


※ 다운로드 : https://github.com/ptoomey3/Keychain-Dumper


keychainDumper 실행한다.


keychain에 저장된 모든 정보 확인 가능하다.



014. Core Data


iDevice에서 사용하는 데이터베이스인 sqlite는 sqlite 또는 db라는 확장자를 가지고 있다. 경우에 따라서 확장자가 없는 경우도 있으며, PE구조를 확인하면 SQL 문구를 확인 가능하다. iOS 모바일 앱에서 데이터를 데이터베이스 형태로 저장 가능하다.






find ./ -name *sql*

sqlite3 ./Documents/CoreData.sqlite

sqlite> .tables

sqlite> .heaaders on

sqlite> select * from ZUSER;








'40. > 42. iOS' 카테고리의 다른 글

[DVIA] 03. Runtime Manipulation  (0) 2014.09.11
[DVIA] 02. Jailbreak Detection  (5) 2014.09.11
[iOS] Logify  (0) 2014.07.24
[DVIA] Damn Vulnerable iOS Application  (0) 2014.07.21
GikDBG iOS assembly-level debugger iOS 디버거  (3) 2014.07.17