HTTP Cookie에 대하여 HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버에서 사용자의 웹 브라우저로 전송한 작은 데이터 조각이다. 브라우저는 나중에 보낼 요청에 대비하여 저장해둔다. HTTP 통신은 상태를 저장하지 않는 stateless 통신이기 때문에 동일한 연결에 대해 연속적인 요청이 발생하지 않는다. 예를 들어 쇼핑몰을 이용할 때 장바구니에 담긴 물건 정보를 통신할 때마다 유지하지 않는다. 이렇게 상태를 저장하지 않는 대신에 쿠키를 이용하여 '세션'을 저장한다. 헤더에 쿠키를 사용하도록 설정하여 HTTP 쿠키가 패킷에 추가되어 각 HTTP 요청에 대해서 동일한 컨텍스트인지, 어떠한 상태를 가지고 있었는지 나타낼 수 있다. 쿠키는 크게 세 가지 목적으로 동작한다. 세션 관리(Session man..
Preview 웹 브라우저들은 다양한 위치에 사용자 데이터를 저장한다. 사용자가 가진 권한, 특성, 클라이언트 측 설정 값(팝업 허용 여부, 자동로그인 설정 여부) 등 여러가지 값들을 저장해 두고 웹 페이지 방문 및 필요할 떄마다 이용한다. 데이터가 보관되는 위치에 따라 보관 기간, 오프라인 사용 가능 여부가 다르다. 이 글은 클라이언트에 저장되는 데이터의 종류와 특징에 대해서 알아본다. 그리고 공격자의 입장에서 이러한 데이터를 안전하게 사용할 수 있는 방법은 있는지 알아본다. Client-side storage? 먼저 웹은 정적(Static)과 동적(Dynamic)페이지로 구분한다. 정적 페이지는 단순 HTML 요청과 응답으로 구성되고, 동적 페이지는 사용자 요청 값을 포함한 다양한 값들을 가공, 랜더..
2FA(Two Factor Authentication)은 온라인 포털 등에서 사용자의 기기를 기반으로 하는 추가 인증 절차이다. 기존 ID와 Password을 이용하여 로그인하는 지식 기반 인증 과정에서 하나의 인증 수단을 추가한 것으로 OTP(One Time Password)나 지문인식 모듈을 이용한 인증 방식 등을 사용한다. 기존의 인증 우회 기법의 발전과 함께 2FA 인증 우회 기술 또한 꾸준히 연구되고 있다. 이 글은 2FA 인증 기술과 공격자의 관점에서 이를 우회하는 기법을 다룬다. 2FA의 동작 과정 2FA는 기존의 인증 절차에서 인증 로직을 추가한 것이다. 기존의 로그인 방식이 email 주소나 패스워드를 묻는 방식이었다면, 인증코드(verification code)를 추가로 요구하는 방식이..
들어가며 웹 모의해킹, 취약점진단 실무를 하면서 다양한 구조로 개발된 웹 페이지들을 대상으로 한다. 그 중 가장 쉬운 공격이면서 크리티컬한 취약점 중 하나인 SQL Injection에 대해서 설명하고 정리한다. 공격을 위해서는 내가 삽입한 코드의 동작 원리를 이해하고 백엔드에서 어떻게 실행되는지 이해한 후에 다음 단계의 공격을 해야 한다. 모의해킹 직무 면접의 단골 질문이면서 필드에서 가장 크리티컬하게 만날 수 있는 취약점이다. 원리부터 대응방안까지 하나씩 살펴보자. SQL(Structured Query Language)? 왜 개발자들은 SQL을 사용할까? 웹 사이트를 운영하기 위해서는 많은 데이터의 관리가 필요하다. 쇼핑몰을 예로 들면 이용자의 회원정보, 물건의 판매정보, 상품 문의 게시글 등 시간이 ..
Android aab 파일 설치를 위한 과정을 소개한다. AAB(Android App Bundle) 안드로이드 앱 번들은 앱 개발, 출시 단계에서 설치 파일의 최적화(용량, 속도)등을 위해 제안된 새로운 파일 형식이다. 기존 APK파일의 경우 다국어 지원을 위한 언어정보, CPU 정보, 해상도 별 리소스 파일이 apk 파일 내에 전부 존재했다면 AAB는 이러한 정보들을 플레이스토어에서 관리하여 사용자가 앱 다운로드 요청 시에 리소스 파일들을 재조합하여 구글플레이의 서명키로 서명한 다음 APK 파일 형태로 제공한다. 자세한 내용은 안드로이드 개발자 공식 홈페이지에서 소개하고 있다.(https://developer.android.com/platform/technology/app-bundle?hl=ko) 하지..
1. Nox 안드로이드 모의해킹에서 녹스는 앱의 에뮬레이팅을 통한 동적 분석, 루트(Root)권한 설정 및 해제가 용이하여 자주 활용한다. 다만 에뮬레이터 환경에서 동작하는 만큼 에뮬레이터 탐지가 적용된 앱의 경우 실행이 어렵다는 단점이 있다. 하지만 진단기기 준비의 어려움 물리적으로 다른 기기에서의 교차진단이 필요할 경우 사용할 수 있는 대안이 될 수 있다. 2. 환경 녹스(Nox) 플레이어 7.0.2.1(설치 : kr.bignox.com/) Burp Suite(Community Edition 2022.5.1) 3. 권장 설정(옵션) 필수 설정은 아니지만 모의해킹 수행을 위한 Nox 설정을 안내한다. (필수) 시스템 설정 > 일반 > 시작항목 > ROOT켜기 (옵션) 시스템 설정 > 성능 > 그래픽 모..
배너 그래빙(Banner Grabbing) 대상 서버나 시스템의 운영체제를 탐지하기 위한 기술에 대해 설명한다. 배너그래빙은 서버로부터 서비스 또는 애플리케이션 정보, 운영체제 정보를 수집한다. 애플리케이션 버전 탐지 등에 활용된다. 대상과 직접 네트워크 연결을 맺어서 운영체제 정보나 서비스 및 애플리케이션 정보를 담고 있는 배너를 받아오는 방법이다. 배너에서 필요한 부분만을 파싱한 결과에 관련 정보가 담겨있는 경우, 간단하게 버전을 확인할 수 있다. 배너그래빙은 포트에서 실행 중인 운영 체제 정보 및 서비스를 해당 버전을 획득하기 위한 작업이다. 실행 중인 서비스의 버전이 취약하고 모든 사용자가 볼 수 있는 경우 공격자가 원격 호스트 시스템 전체를 처리할 수 있기 때문에 원격 호스트 시스템에 침투할 수..
1. 개요 C/S 진단을 위한 네트워크 프록시 도구인 Echo Mirage에 대해 설명한다. Echo Mirage는 애플리케이션 프로세스에 연결하여 동작하는 네트워크 통신을 모니터링할 수 있는 프리웨어이다. 네트워크 프록시 도구로 HTTP 패킷이 아닌 TCP 패킷 또한 캡처가 가능하며 로컬에서 데이터를 보거나 수정이 가능하다. Open SSL을 사용하는 경우에도 연결하여 평문으로 데이터를 볼 수 있다. Echo Mirage는 실행중인 프로세스에 Attach되거나 새롭게 프로세스를 실행(Spawn)할 수 있다. 이러한 유형의 보안 테스트는 C/S 응용 프로그램 보안 테스트에 유용하다. 2. 다운로드 https://echo-mirage.software.informer.com/download/ Download..
IAM Policy 구조 { "Statement":[{ "Effect":"effect", "Principal":"principal", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value"} } } ] } Principal : 허용하거나 거부할 속성(entity)이다. Action : 접근을 허용(allow)하거나 거부(Deny)할지 여부를 명시한다. Resource : AWS에서 자원이 위치한 경로이다. arn으로 명시한다. Condition : 정책을 적용할 조건이다. 문자열 일치, IP주소 일치여부 등을 나열할 수 있다. AWS가 IAM 권한 부여를 하는 과정은 매우 복잡하며 여러 단계가 있다. 특정 권한을 관리하..
Active Directory? 다수의 윈도우 시스템(PC, 서버)을 중앙에서 관리(계정정책 변경, 시스템 접근권한, 시스템 정보 수집 등)하기 위해 사용되는 체계 사용자, 사용자그룹, 네트워크 데이터 등을 하나로 통합 관리하는 새로운 인터페이스 목적 윈도우 기반의 컴퓨터들을 위한 인증 서비스 제공 위협 Domain Controller 서버 내부 침투에 대한 위험성 AD 관리자 계정 탈취에 의한 위험성 사례 AD 관리자 계정이 탈취되어 DC 서버 등 기업 시스템 전체가 장악되고, 내부 정보 유출 및 랜섬웨어 감염 Active Directory Enumeration Active Directory 환경을 열거하는 것은 도메인 관리자 권한을 얻는 데 필요한 과정 도메인, 그룹 정책, ACL(Access Con..