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을 사용할까? 웹 사이트를 운영하기 위해서는 많은 데이터의 관리가 필요하다. 쇼핑몰을 예로 들면 이용자의 회원정보, 물건의 판매정보, 상품 문의 게시글 등 시간이 ..
배너 그래빙(Banner Grabbing) 대상 서버나 시스템의 운영체제를 탐지하기 위한 기술에 대해 설명한다. 배너그래빙은 서버로부터 서비스 또는 애플리케이션 정보, 운영체제 정보를 수집한다. 애플리케이션 버전 탐지 등에 활용된다. 대상과 직접 네트워크 연결을 맺어서 운영체제 정보나 서비스 및 애플리케이션 정보를 담고 있는 배너를 받아오는 방법이다. 배너에서 필요한 부분만을 파싱한 결과에 관련 정보가 담겨있는 경우, 간단하게 버전을 확인할 수 있다. 배너그래빙은 포트에서 실행 중인 운영 체제 정보 및 서비스를 해당 버전을 획득하기 위한 작업이다. 실행 중인 서비스의 버전이 취약하고 모든 사용자가 볼 수 있는 경우 공격자가 원격 호스트 시스템 전체를 처리할 수 있기 때문에 원격 호스트 시스템에 침투할 수..
GitHub - lwzSoviet/CVE-2021-3281 GitHub - lwzSoviet/CVE-2021-3281 Contribute to lwzSoviet/CVE-2021-3281 development by creating an account on GitHub. github.com django.utils.archive.py의 TarArchive 클래스, 171번 라인에서 발생하는 Path Traversal 취약성이다. 이 함수는 os.path.join(to_path, name)를 사용하며, 'name' 파라미터에 대한 검증을 실시하지 않는다. 사용자가 이 함수를 윈도우 환경에서 사용할 경우 Directory Traversal 취약성이 발생할 수 있다. POC는 아래와 같다. from django.u..
데이터 평문 전송 데이터 평문 전송 취약점은 서버와 클라이언트 간 통신 시 중요 정보(계정정보, 주민등록번호, 신용정보 등)가 평문으로 노출되는 취약점입니다. 주의! 데이터 평문 전송 취약점을 애플리케이션 계층 진단 도구인 프록시로 진단하지 않도록 한다. 복호화가 완료된 이후의 데이터가 보이기 때문에 꼭 전송 계층의 진단 도구인 스니핑 툴(와이어 샤크)로 진단한다. No 실습 위치 비고 1 http://localhost/login 로그인 Step1. 로그인 시 발생하는 패킷을 Wireshark로 확인해보면 입력한 계정정보가 평문으로 전송되는 것을 확인할 수 있습니다. 데이터를 평문으로 전송했을 시 스니핑 공격시 계정 노출의 위험이 있으므로 암호화하여 전송해야 합니다. 또한 개인정보보호법과 정보통신망 이용..