목록버그바운티 스터디/Web Hacking (9)
kaki1013
# ClientSide: CSRF 0. 서론 일상에서 서명 : 서명자가 문서의 내용에 동의했다는 것을 함축 → 서명된 문서는 효력 가짐 & 이용자의 권한도 부여 받음 → 이용자의 식별 정보가 포함된 쿠키 : 클라이언트에서 보내진 요청이 이용자로부터 왔으며, 이용자가 동의함 → 따라서 요청에 이용자의 권한이 부여돼야함을 의미함 → 실생활과 밀접한 웹 서비스가 많아졌으므로, 서명을 신중하게 관리하는 것 만큼 웹 서비스의 쿠키도 잘 보관해야 함 서명과 관련된 범죄는 서명을 날조하거나, 서명된 문서를 위조하는 것 등이 있음 → 이러한 범죄는 웹 해킹의 공격 기법들과도 대응됨 전자 : 이전 강의에서 살펴본 쿠키를 탈취하는 공격 후자 : 이번 강의에서 배울 교차 사이트 요청 위조(Cross Site Request ..
# ClientSide: XSS 1. Cross Site Scripting (XSS) (1) Cross Site Scripting (XSS) : 클라이언트 사이드 취약점 중 하나 : 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행 가능 → 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행 가능 예를 들어, 드림핵 웹 페이지에서 XSS 취약점이 존재하면 https://dreamhack.io 내에서 오리진 권한으로 악성 스크립트를 삽입 → 이후에 이용자가 악성 스크립트가 포함된 페이지를 방문하면 공격자가 임의로 삽입한 스크립트가 실행되어 쿠키 및 세션이 탈취될 수 있음 해당 취약점은 SOP 보안 정책이 등장하면서 서로 ..
# Mitigation: Same Origin Policy 0. 서론 쿠키 : 인증 상태를 나타내는 민감한 정보를 보관 &브라우저 내부에 저장 → 브라우저가 웹 서비스에 접속할 때 : 브라우저는 자동으로 쿠키를 헤더에 포함시켜 요청을 보냄 → 포털 사이트, SNS와 같은 웹 서비스에 한 번 로그인한 후 일정 기간은 로그인하지 않고도 바로 서비스를 사용 가능 이용자가 악의적인 페이지를 접속했을 때, 페이지가 자바스크립트를 사용해 이용자의 SNS 웹 서비스로 요청을 보낸다면? → 브라우저는 요청을 보낼 때 헤더에 해당 웹 서비스 쿠키를 포함시킴 → 자바스크립트로 요청을 보낸 페이지는 로그인 된 이용자의 SNS 응답을 받음 → 마음대로 페이지 접속자의 SNS에 글을 올리거나, 삭제하고, SNS 메신저를 읽는 ..
# Background: Cookie & Session 0. 서론 현대의 웹 서비스는 대부분 로그인을 통해 마이페이지, 유료 서비스 등 개인만의 서비스를 이용함 → 웹 서버는 수많은 클라이언트와 HTTP 프로토콜을 사용해 통신함 → 손님 계정으로 로그인 : 손님이 이용할 수 있는 서비스를 제공해야 함 → 관리자 계정으로 로그인 : 데이터베이스, 회원 관리 등의 관리자 페이지를 제공해야 함 웹 서버는 수많은 클라이언트를 어떻게 구별하고 서로 다른 결과를 반환할까? : HTTP 프로토콜로 웹 서버와 통신할 때 → 웹 서버에 명령을 내리기 위해 GET, POST와 같은 메소드 & 자원의 위치를 가리키는 URL 등이 포함 → 이외에도 헤더(Header)를 통해서 웹 서버에게 요청을 보냄 & 웹 서버는 헤더를 읽..

# Tools: Browser DevTools (크롬 브라우저 기준) 1. 개발자 도구 (1) 개발자 도구 개발자 도구를 실행 : 브라우저를 열고 F12를 누름 왼쪽 이미지 2개 : 요소 검사(Inspect) 및 디바이스 툴바(Device Toolbar) 나열된 메뉴들 : 기능을 선택하는 패널. 코스에서는 굵게처리된 기능들만을 다룸 Elements: 페이지를 구성하는 HTML 검사 Console: 자바 스크립트를 실행하고 결과를 확인할 수 있음 Sources: HTML, CSS, JS 등 페이지를 구성하는 리소스를 확인하고 디버깅할 수 있음 Network: 서버와 오가는 데이터를 확인할 수 있음 Performance Memory Application: 쿠키를 포함하여 웹 어플리케이션과 관련된 데이터를 확..

# Background: Web Browser 1. 웹 브라우저 웹 = 인터넷이라는 글로벌 네트워크 위에 구현되어 있음 & 정해진 프로토콜을 기반으로 통신함 20세기에 등장한 웹 브라우저 : 서버와 HTTP 통신을 대신함 & 수신한 리소스를 시각화 웹 브라우저 : 뛰어난 이용자 경험(User eXperience, UX)을 제공하는 소프트웨어 중 하나 이용자는 브라우저를 이용하여 쉽게 정보를 검색하고, 동영상을 보고, 파일을 내려받지만 내부에서 어떠한 연산이 일어나는지는 전혀 알지 못함 아래는 이용자가 주소창에 dreamhack.io를 입력했을 때 웹 브라우저가 하게 되는 기본적인 동작을 나열한 것 웹 브라우저의 주소창에 입력된 주소(dreamhack.io)를 해석 (URL 분석) dreamhack.io에..

# Background: HTTP/HTTPS 1. 인코딩 & 통신 프로토콜 (1) 인코딩 인코딩(Encoding) 표준 : 0과 1로 우리의 문자를 표현하는 일종의 약속, 대표적으로 아스키(Ascii)와 유니코드(Unicode) → 아스키 : 7비트 데이터에 대한 인코딩 표준 컴퓨터가 개발된 초기에는 각 문자권마다 고유의 인코딩 표준을 사용 (영어는 아스키, 한글은 CP-949, EUC-KR 등을 사용) → 그런데 이러한 방식은 호환성 측면에서, 국제 소프트웨어를 개발하려는 회사에 큰 부담이 됐음 이러한 어려움을 해결하고자 유니코드라는 새로운 표준이 만들어짐 → 유니코드에서 한 문자는 최대 32개의 비트로 표현됨 (대략 42억 가지의 정보 표현 가능) (2) 통신 프로토콜 웹 서버에 있는 리소스를 클라이..

# Background: Web 웹 (World Wide Web, W3, Web) = 현대 정보 통신을 대표하는 통신 수단 중 하나 = 인터넷이라는 통신망을 활용하여 구현된 전 지구적 정보 공간 = 시간과 장소에 구애받지 않고 인터넷에 접속할 수만 있다면, 웹에서 정보를 구하거나 공유 가능 → 웹으로 연결된 사람들 사이에 형성되는 정보의 흐름이 마치 거미줄 같다고 하여 웹으로 이름 붙여짐 통신 과거 현대 목적 의사 소통 (정보 교환, 감정 표현 등) 수단 찾아가기, 봉화 신호 전화, 인터넷 특징 시간과 거리의 제약이 있음 시간과 거리의 제약이 거의 없음 1. 웹 웹 = 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스 → 웹 서버 (Web Server) = 정보를 제공하는 주..