일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- kibana
- Volatility
- diva
- SQL Injection
- otter
- igoat
- ESXi
- CTF-d
- MFT
- vulnhub
- 인시큐어뱅크
- 파이썬
- Suninatas
- XSS
- lord of sql injection
- foremost
- frida
- logstash
- 2018
- ctf
- base64
- Strings
- Openstack
- Docker
- InsecureBank
- Reflected XSS
- beebox
- NTFS
- 안드로이드
- elasticsearch
- Today
- Total
목록모바일 (84)
Information Security
Plist 내 주요 데이터 확인 - Plist 파일에 저장해 발생하는 취약점 위치 Bundle Container of DIVA\Documents\userInfo.plist 영향 사용자가 입력한 정보가 평문으로 저장되어 노출될 위험이 있다. 진단 Insecure Data Storage -> Plist에 데이터를 입력한다. Bundle Container of DVIA\Documents에 userInfo.plist로 파일이 저장된 것을 알 수 있다. userInfo.plist 파일을 열어보면 그림 5-1에서 입력한 데이터가 평문으로 노출된 것을 알 수 있다. 대응방안 계정을 파일 시스템 안에 저장해서는 안되며 웹 또는 API 로그인 방식을 통해 인증하고 세션 기간은 사용 시간을 고려한 최소한의 시간을 설정해야..
NSUserDefaults로 주요 데이터 저장 - NSUserDefaults함수로 저장해 경로가 노출되고 데이터를 확인할 수 있는 취약점 위치 Data Container of DVIA\Library\Preferences\App_ID.plist 영향 데이터가 평문으로 저장되어 노출되면 위험하다. 진단 Insecure Data Storage -> NSUser Defaults에서 데이터를 입력한다. Save in NSUerDefaults를 누르면 그림 4-1처럼 데이터가 저장된다. 사용자 정보 저장 시 지정한 디렉터리 및 파일로 저장되는 것을 확인할 수 있다. 그림 4-3에 Plist 파일을 열어보면 그림 4 9에서 입력한 데이터가 평문으로 노출되는 것을 알 수 있다. 대응방안 중요정보 저장 시 하드코딩된 암..
Keychain 내 주요 데이터 저장 - 데이터를 Keychain내에 평문으로 저장해 발생하는 취약점 영향 데이터가 평문으로 저장되어 노출되면 위험하다. 위치 Keychain-Dumper-master 진단 Insecure Data Storage -> Keychain에서 데이터를 입력하고 Save in Keychain을 눌러 저장했다. Keychain_dumpber의 압축 파일을 풀었다. ./keychain_dumpber을 실행하면 그림 3-1 입력한 데이터가 노출되는 것을 알 수 있다. 대응방안 중요정보 저장 시 하드 코딩된 암호화 또는 암호화 해독 키에 의존하지 않아야 한다.
데이터베이스 내 주요 정보 저장(CoreData) - 개발자가 주요한 데이터를 데이터베이스 내에 저장함으로써 발생하는 취약점 위치 /var/mobile/Containers/Data/Application 영향 데이터베이스에 저장되어 있는 민감한 정보가 노출될 위험이 있다. 진단 Insecure Data Storage -> Core Data에서 데이터를 입력했다. /var/mobile/Containers/Data/Application 위치에 저장된 파일이 있다. find 명령어로 10분 내에 변경된 파일을 조회했다. CoreData.sqlite 파일을 DB Browser를 이용해 데이터베이스에 저장되어 있는 아이디, 이메일, 비밀번호, 휴대폰 번호를 확인할 수 있다. 대응방안 SQLite 데이터베이스를 사용..
비암호화 통신 (HTTP) - HTTP 프로토콜을 이용해 주요 정보를 평문으로 전송하거나, GET 방식을 통해 외부자에게 유출될 수 있는 취약점 영향 네트워크 스니핑 또는 중간자 공격을 통해 주요 정보가 제3자에게 노출될 수 있는 취약점 위치 데이터베이스 서버 진단 Diva 어플리케이션 실행 후 Transport Layer Protection 메뉴에서 정보를 입력하고 전송했다. PC에서 BurpSuite Proxy를 이용해 중간에서 패킷 내용을 확인했다. 그림 1-1에 입력한 민감한 정보 내용이 보이는 것을 알 수 있다. 대응방안 SSL/TLS 전송 계층을 활용해 정보를 전송한다. 웹뷰 또는 웹킷을 이용한 웹 앱의 경우에도 SSL을 사용한다. 적절한 키 길이를 가진 강력한 암호화를 사용한다. 신뢰할 수 ..
URL Scheme Attack - 어플리케이션이나 프로세스 간 통신 시 발생할 수 있는 취약점 위치 iGoat\URL Scheme\URLSchemeAttackExerciseVC.m 영향 설정 값 변경 및 민감한 기능이 동작할 위험이 있다. 신뢰할 수 없는 외부 프로세스 또는 어플리케이션의 요청, 입력에 대한 민감한 의사결정을 방지해야 한다. 진단 URL Scheme 문제에서 Number 1234 Message hello를 입력했다. URLSchemeAttackExerciseVC 코드를 보면 URL Scheme 동작할 URL주소를 확인할 수 있다. 그림 15-2에서 소스 코드에 보여주는 형식에 맞게 주소창에 입력했다. iGoat에 그림 15-3처럼 입력한 정보를 보여준다. 대응방안 민감한 의사 결정을 할..
Key Storage Server Side - 서버에 키를 전송 시 노출될 위험이 있는 취약점 위치 iGoat\Key Storage Sever side\KeyStorageServerSideVC.m 영향 서버 통신할 때 평문 전송 시 노출될 위험이 있다. 진단 Key Storage Server Side 문제에서 i2sec 입력을 해보았다. 중간에서 버프스위트를 실행시켜 key iG0@t_L0cK을 찾았다. iG0@t_L0cK를 입력해 Success!! 메시지를 보여준다. 대응방안 서버와 통신 시 암호화 통신을 한다.
Binary Patching - 앱의 변조 및 무결성 검증 위치 BinaryPatchingVC setTheTextfield 영향 앱이 변조될 위험이 있다. 진단 IDA 프로그램을 이용해 setTheTextfield 함수에서 특정 단어 root를 검색했다. 이 부분이 root를 입력하면 correct password 메시지를 보여주는 부분인 것 같다. 72 6F 6F 74 부분을 toor 16진수를 입력하면 되는 것을 알 수 있다. 010 editor 프로그램에서 그림 13-3에서 찾은 16진수를 바꾸면 될 것 같다. root 부분을 toor로 변경했다. 대응방안 소스 코드를 난독화해서 코드를 알아볼 수 없게 한다.