0911
*Background: Web
웹해킹 3가지 소스중 하나를 이용할 가능성이 높다.
Flask, NodeJS, Spring
Backgroud.web
www, w3 web
http는 일종의 규칙
프론트엔드 - 이용자의 요청을 받는부분 ( 웹 리소스)
백엔드 - 뒤에서 이런저런 서비스
웹리소스란 http://dreamhack.io/index.html 주소를 입력하면 dreamhack.io에 존재하는 /index.html 경로의
html (하이퍼 텍스트 마크업 랭기지)
문서의 뼈와살을 담당
css (cascading style sheets) 생김새를 지정
javaScript (동작을 구현)
http
request 와 response 쌍이 독립적으로 구성되어 통신하는
connectionless, stateless 프로토콜
connectionless 속성은 하나의 요청에 하나의 응답을 한 후 네트워크 연결을 끝맺는 것을 의미합니다 connectionless는 과거임 부하때문에 생겼던것.
stateless 속성은 네트워크가 연결을 끝맺을 때 상태를 유지하지 않는다
새로운 커넥션을 열때마다 인증하기 빡세서 쿠키 생김
웹 브라우저는 HTTP Response의 Set-Cookie Header나 Javascript document.cookie를 통해 데이터를 쿠키에 저장합니다.
HTTP Response
HTTP/1.1 200 OK
Server: Apache/2.4.29 (Ubuntu)
Set-Cookie: name=test;
Set-Cookie: age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;
Javascript
document.cookie = "name=test;"
document.cookie = "age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;"
Cookie: session=ashndbkjawhebkrajhwebr;
nslookup 명령어를 사용해 도메인 네임의 정보를 확인할 수 있습니다.
nslookup example.com
웹 서버는 사용자의 HTTP 요청을 해석하여 처리한 후 응답하여 주는 역할을 합니다.
대표적으로 nginx, Apache, Tomcat, IIS 등이 있습니다.
웹 어플리케이션을 작성할 때는 사용자가 요청한 내용을 동적으로 처리하기 위해 Web Application Language가 사용되며 대표적으로 PHP, NodeJS, Python, Java 등이 존재합니다.
웹 해킹의 개요
권한이상으로 열람, 복제, 변경 행위
*Background: HTTP/HTTPS
CRLF는 Carriage Return (CR)와 Line Feed (LF)의 조합을 나타냅니다. Carriage Return은 커서를 현재 줄의 맨 앞으로 이동시키는 문자이고, Line Feed는 커서를 다음 줄로 이동시키는 문자입니다
* Background: Web Browser
웹 렌더링
렌더링(Web Rendering)은 서버로부터 받은 리소스를 이용자에게 시각화하는 행위를 말합니다
웹 렌더링은 웹 렌더링 엔진에 의해서 이뤄지는데, 브라우저별로 서로 다른 엔진을 사용합니다. 사파리는 웹킷(Webkit), 크롬은 블링크(Blink), 파이어폭스는 개코(Gecko) 엔진을 사용합니다. 각각의 엔진에 따라 렌더링 과정과 순서, 속도의 차이는 있지만, HTML을 파싱하고 시각화하여 이용자에게 보여주는 것은 같습니다.
*Tools: Browser DevTools
HTML과 CSS 코드를 브라우저에서 수정하고 결과를 바로 확인할 수 있으며,자바스크립트 코드를 대상으로 디버거도 제공합니다. 서버와 오가는 HTTP 패킷도 상세히 보여주므로 프로토콜 상에서 발생하는 문제도 쉽게 발견할 수 있습니다
개발자 도구 (DevTools): 웹 페이지를 진단할 때 사용하는 브라우저 도구
Carve Party
funjs
secure Mail
*Background: Cookie & Session
*Mitigation: Same Origin Policy
동일 출처 정책, Same Origin Policy (SOP) 보안 메커니즘이 탄생했습니다.
불러오는 <img>, <style>, <script> 등의 태그는 SOP의 영향을 받지 않습니다.교차 출처 리소스 공유 (Cross Origin Resource Sharing, CORS)
JSON with Padding (JSONP)