본문 바로가기

Security Study

(19)
[Dreamhack] Cross Site Request Forgery (CSRF) ClientSide: CSRF 1. Cross Site Request Forgery (CSRF) 1.1. Cross Site Request Forgery (CSRF) 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있음 이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취하거나, 비밀번호를 변경해 계정을 탈취하고 관리자 계정을 공격해 공지사항 작성 등으로 혼란을 야기할 수 있음 이용자의 송금 요청 GET /sendmoney?to=dreamhack&amount=1337 HTTP/1.1 Host: bank.dreamhack.io Cookie: session=IeheighaiToo4eenahw3 송금 기능 # 이..
[InsecureBankv2] 브로드캐스트 리시버 결함 취약점 개요 취약점 설명 브로드캐스트 리시버는 안드로이드 4대 컴포넌트 중 하나로, 시스템 및 앱 간에 이벤트를 전달하고 처리하는 데 사용되는 중요한 구성 요소이다. 설정에 문제가 있거나 악의적으로 사용될 경우 보안 위협을 초래할 수 있다. 보안 위협 브로드캐스트 리시버를 악용하여 악성 앱이 정상적인 앱의 브로드캐스트를 가로채거나 변조하는 등의 행위를 할 수 있다. 발생 위치 AndroidManifest.xml 취약점 진단 과정 adb Step 1) AndroidManifext.xml 확인 브로드캐스트 리시버의 android:exported 속성이 “true”로 설정되어 있는 것을 확인할 수 있다. Step 2) 브로드캐스트 리시버 실행 adb에서 브로드캐스트 리시버를 실행 후 logcat을 확인해보면 ..
[Dreamhack] Cross-Site-Scripting (XSS) ClientSide: XSS1. XSS1.1. XSS (Cross Site Scripting) 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있음 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있음 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어져, 이를 우회하는 다양한 기술이 소개되면서 XSS 공격은 지속되고 있음 1.2. XSS 발생 예시와 종류 이용자가 삽입한 내용을 출력하는 기능에서 발생클라이언트는 HTTP 형식으로 웹 서버에 리소스를 요청하고 서버로부터 받는 응답, 즉 HTML, CSS, JS 등의 웹 리소스를..
[InsecureBankv2] 환경 구축 환경 Kali Linux(2023, bridge mode): InsecureBankv2, Android Studio, adb, drozer, Apktool, JD-GUI Windows 10: Nox Nox 설정 root 설정: 녹스 시스템 설정 > 일반 > ROOT 켜기 체크 개발자 모드: 설정 > 시스템 > 태블릿 정보 > 빌드 번호 연속 클릭 디버깅 모드: 설정 > 시스템 > 개발자 옵션 > USB 디버깅 모드 네트워크 설정: 녹스 시스템 설정 > 핸드폰 > 브릿지 모드 체크 InsecureBankv2 설치 서버 설정 https://github.com/dineshshetty/Android-InsecureBankv2에서 zip 파일 다운로드 후 압축 해제한다 파이썬 모듈 설치 wget https://b..
[Dreamhack] Cookie & Session Background: Cookie & Session 1. 쿠키 1.1. 쿠키 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있음 클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있는 고유하지 않은 정보일 뿐만 아니라, HTTP 프로토콜의 Connectionless와 Stateless 특징 때문에 웹 서버는 클라이언트를 기억할 수 없음 Connectionless와 Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 쿠키(Cookie)가 탄생 HTTP 프로토콜 특징 Connectionless특정 요청에 대한 연결은 이..
[Android] 안드로이드 4대 컴포넌트 애플리케이션 컴포넌트 (구성 요소) 안드로이드 앱의 필수적인 구성 요소, 각 독립된 형태로 존재하며 정해진 역할 수행 각 구성요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점 인텐트 (Intent): 다른 컴포넌트로부터 작업을 요청하는 데 사용할 수 있는 메시징 객체 액티비티 (Activity) 사용자와 상호작용하는 화면을 나타냄 하나의 애플리케이션에는 여러 액티비티가 존재할 수 있고, 각 액티비티는 특정 기능을 수행하는 화면을 담당 ex) 메인 화면, 로그인 화면, 설정 화면 등 서비스 (Service) 백그라운드에서 실행되는 컴포넌트 사용자 인터페이스(UI)는 제공하지 않음 백그라운드 작업을 처리하거나 다른 애플리케이션과 통신하는 역할 수행 ex) 음악 재생 서비스, 알림 서비스, 데이터 동기화..
[Dreamhack] Background - Web Background: Web 1. 웹 1.1. 웹 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스 웹 서버: 정보 제공 주체 웹 클라이언트: 정보 받는 이용자 HTTP: 웹상에서 서로 통신을 하기 위해 정해둔 일종의 규칙 웹의 발전과 웹 보안의 중요성 초기 웹 서비스는 저장된 문서의 내용을 출력해 이용자에게 제공하는 간단한 서비스 웹과 관련된 기술이 발전하면서 금융, 쇼핑, 협업 등 다양한 분야에서 이용자에게 편의를 주는 복잡한 서비스로 진화 단순히 정보를 보여주는 것에서 정보를 검색하고 직접 제품을 구매할 수 있도록 변화 웹에서 처리하는 정보 자산들이 많아짐에 따라 이들을 안전하게 보관하고 처리해야 할 필요성도 함께 증가 웹을 통한 정보의 교환 과정에서 민감한 정보들이 유..