목록* (243)
CIDY

어떤 악의적인 페이지가 JS를 이용해 클라이언트의 SNS웹 서비스로 요청을 보냄 -> 브라우저는 요청 보낼 때 헤더에 해당 웹 서비스의 쿠키를 포함시킴 -> 악의적인 페이지는 로그인 된 이용자의 SNS응답을 받음 -> 해당 SNS페이지를 마음대로 할 수 있음 -> 그래서 나온 게 SOP(동일 출처 정책) *Same Origin Policy(SOP) 위에서 말했듯 악의적인 사이트가 특정 페이지에 HTTP요청을 보내고(이 때 헤더에 쿠키가 포함됨) -> HTTP응답 정보를 획득하는 코드를 실행할 수 있다. -> 가져온 데이터를 악의적인 페이지에서 읽을 수 없도록 할 필요가 있음 -> SOP 그럼 정보의 출처(Origin)를 어떻게 구분할까? -> 오리진은 프로토콜/포트/호스트로 구성 -> 세 요소가 모두 일..

#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'admin': FLAG } @app.route('/') def index(): username = request.cookies.get('username', None) if username: return render_template('index.html', text=f'Hello {username}, {"fla..

#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } # this is our session storage session_storage = { } @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: ..

쿠키와 세션은 클라이언트의 인증 정보를 포함하고 있는 친구들이다. 웹 서버는 수많은 클라이언트와 HTTP프로토콜을 이용해 통신하는데, 어느 계정으로 로그인하는지에 따라 상이한 서비스를 제공해야 한다. -> HTTP프로토콜로 웹 서버와 통신할 때 전송하는 헤더에 클라이언트의 정보/요청 내용을 구체화하는 데이터가 포함됨 -> 클라이언트의 인증 정보도 포함 *쿠키(Cookie) 클라이언트의 IP주소와 User-Agent는 고유하지 않은 정보 + HTTP 프로토콜의 Connectionless, Stateless특징 때문에 웹 서버는 클라이언트를 기억할 수 없음. Connectionless: 1요청 1응답 후 연결 종료. 새 요청이 들어올 때 마다 새로운 연결을 맺는다. Stateless: 통신이 끝난 후 상태 ..

접속해보면 이런 페이지를 볼 수 있다. 처음에는 플래그를 어떻게 구해야 할 지 막막헀는데, 수능볼때도 그랬지만 문제는 항상 잘 읽을 필요가 있다. 소스 탭에서 플래그를 "찾아" 보세요 -> 소스 어딘가에 플래그가 적혀있다. -> 검색

*개발자 도구 F12누르면 나오는 그거 명칭이 개발자 도구이다. 위쪽에 보면 기능 선택 패널이 있다. 요소 : 페이지 구성 HTML검사 콘솔 : 자바스크립트 실행 + 결과 확인 가능 소스 : HTML, CSS, JS등 페이지 구성 리소스 확인 + 디버깅 가능 네트워크 : 서버와 오가는 데이터 확인 가능 애플리케이션 : 쿠키 포함 웹 어플리케이션과 관련 데이터 확인 가능 패널에서 좀 더 오른쪽을 보면, VS에서 본 것 같은 오류 표시가 있다. -> 현재 페이지에서 발생한 에러 및 경고 메시지를 나타낸다. *요소 검사 패널 왼쪽 버튼은 요소 검사인데, 이를 이용해 특정 요소의 개략적인 정보 파악 및 관련 코드를 찾는 행위가 가능하다. 위 사진과 같이 요소 검사 버튼을 누른 뒤, 페이지상에 보이는 요소들에 커..

*웹 브라우저 웹 브라우저는 서버와 HTTP통신을 대신해주고, 수신한 리소스를 시각화하여 이용자의 접근성을 향상시켰다. -> 뛰어난 이용자 경험(UX)을 제공하는 소프트웨어라고 할 수 있다. 이용자는 웹 브라우저를 쉽게 이용할 수 있지만, 그 과정에서 내부적으로 어떤 일이 일어나는지는 모른다. 우리가 주소창에 어떠한 주소를 입력하면, 브라우저는 다음과 같은 동작을 수행한다. 웹 브라우저의 주소창에 입력된 주소 해석(URL분석) -> 해당 입력에 대응하는 주소 탐색(DNS요청) -> HTTP를 통해 해당 서버에 요청 -> 서버의 HTTP응답 수신 -> 리소스 다운로드 및 렌더링(HTML, CSS, Javascript) *URL Uniform Resource Locator -> 웹에 있는 리소스의 위치를 표..
*웹 인터넷 기반 서비스 중 HTTP를 이용해 정보를 공유하는 서비스를 말한다. 정보 제공 주체를 웹 서버(Web Server), 정보를 받는 이용자를 웹 클라이언트(Web Clinet)라고 한다. -> 여기서 HTTP는 웹상의 통신 규칙 같은 것이다. 프론트엔드: 웹 서비스 구조에서 이용자의 요청을 받는 부분 -> 이용자에게 직접 보여지는 부분으로, 웹 리소스로 구성된다. 페이지가 보여주는 모든 정보들은 웹 리소스에 명시되어 있다. (페이지에 담기는 글, 글자들의 색과 모양, 배경 색상, 이미지 크기나 투명도 등) 백엔드: 해당 요청을 처리하는 부분 *웹 리소스 웹에 갖춰진 정보 자산이다. 웹 브라우저 주소창에 http://dreamhack.io/index.html 주소를 입력하게 되면, dreamha..