-
xss-1해킹/웹해킹 실전 2023. 11. 21. 00:34
https://dreamhack.io/wargame/challenges/28 xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{...} 입니다. 문제 수정 내역 dreamhack.io def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0.1"}) try: service = Service(executable_path="/chromedriver") options = webdriver.ChromeOptions() for _ in [ "headless"..
-
session-basic해킹/웹해킹 실전 2023. 11. 21. 00:07
https://dreamhack.io/wargame/challenges/409 session-basic Description 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{...} 입니다. Reference Background: Cook dreamhack.io @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: # get username from session_storage username = session_storage[session_id] except KeyError: return render_..
-
cookie해킹/웹해킹 실전 2023. 11. 20. 22:55
https://dreamhack.io/wargame/challenges/6 FLAG를 보여주는 코드에 집중해야한다. '/'로 끝나는 홈페이지에서 FLAG를 보여주는데 이 때 브라우저에 저장된 쿠키 중 key값이 username인 값을 가져와 변수 username에 저장하고, username이 admin이라면 FLAG를 보여준다. @app.route('/') def index(): username = request.cookies.get('username', None) if username: return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if username == "admin" else "you are not ..
-
02. SOP 원칙 및 Client Side Attack해킹/웹해킹 이론 2023. 11. 18. 01:05
SOP(Same Origin Policy) 브라우저는 웹 리소스를 통해 간접적으로 타 사이트에 접근할 때도 인증 정보인 쿠키를 함께 전송하는 특징을 가지고 있다. 따라서, 클라이언트 입장에서는 가져온 데이터를 악의적인 페이지에서 읽을 수 없도록 해야 한다. 따라서 타 사이트에 접근해 읽어 올 때, 해당 사이트가 같은 출처 (Same Origin)인지 검사한다. 이것이 바로 브라우저의 보안 메커니즘인 동일 출처 정책 (Same Origin Policy, SOP) 이다. 악성 데이터를 읽어오는 것이 문제 이므로 다른 출처의 사이트를 쓰는 행위는 규제하지 않는다. Same Origin은 URL의 프로토콜, 포트, 호스트가 모두 같을 때 Same Origin이라 한다. 프로토콜은 앞서 말한 http / http..
-
01. Introduction해킹/웹해킹 이론 2023. 11. 15. 20:12
웹 HTTP를 이용하여 정보를 공유하는 서비스를 웹이라 한다. 정보 제공의 주체를 웹 서버 (Web Server), 정보를 받는 이용자를 웹 클라이언트 (Web Client) 라고 한다. (웹 서버, 웹 클라이언트가 고정된 것이 아니라 하는 일에 따라 서버가 될 수도 클라이언트가 될 수도 있다.) 웹서비스 중, 이용자의 요청을 받는 부분을 프론트엔드 (Front-end), 요청을 처리하는 부분을 백엔드 (Back-end)라고 부른다. 프론트엔드를 구성하는 글, 글자들의 색깔, 모양, 배경 색상, 이미지 등을 웹 리소스 (Web Resource)라고 한다. 웹 리소스 웹 리소스란, 웹에 갖춰진 정보 자산이다. 모든 웹 리소스는 고유의 Uniform Resource Identifier (URI)를 가지며, ..
-
왜 프론트에서 바로 DB에 접근하면 안될까?웹개발 2023. 3. 23. 21:27
introduction 처음 풀스택 토이프로젝트를 시작하고 DB를 먼저 작성했다. 이후, 프론트 코드를 작성하며 필요한 DB쿼리들을 바로 받아오면 되겠다는 생각을 했다. 즉, 프론트엔드↔데이터베이스 통신을 생각하고 개발을 진행한 것이다. 대다수의 레퍼런스를 찾아보며 프론트에서는 주소(API)에 접근을 하지 쿼리를 작성하진 않는다는 것을 깨달았다. CS에서 2계층, 3계층(tier, layer)라고 불리는 구조와 관련된 내용이다. Concept 가장 간단하고 직관적인 방식으로 유저(클라이언트)는 데이터베이스에 직접 접근할 수 있다. 앞서 말한 프론트엔드 소스코드에서 query문을 작성하는 경우이다. 이 경우를 2-tier 구조라고 부른다. 1. 클라이언트 2. Database 두 가지로 구성된다. 2-ti..