본문 바로가기

해킹40

[Dreamhack] xss-1 문제 풀이 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 웹 서비스이므로 웹으로 접속한다. XSS에 관한 문제로 보이며 vlun(xss) page와 memo, flag 매뉴얼이 존재한다. 여기서, 각각의 기능에 대해 알기 위해서 주어진 문제 파일의 압축을 풀고 python으로 작성된 파일을 열어보자. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) .. 2024. 1. 6.
XSS란? 클라이언트 사이드 취약점은 웹 페이지 이용자를 대상으로 공격할 수 있는 취약점이다. 이를 통해 이용자를 식별하기 위한 세션 및 쿠키 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. 클라이언트 사이드 취약점 중 XSS가 있다. XSS(Cross Site Scripting) : 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있다. 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있다. 예를 들어, 공격자가 특정 웹 사이트 내에서 오리진 권한으로 XSS 공격으로서 악성 게시글을 작성했다고 해보자. 악성 스크립트가 삽입되면, 이용자가 이 웹 사이트의 악성 게시글에 방문할 때, 공격자가 임의로 삽.. 2024. 1. 6.
동일 출처 정책(Same origin Policy) SOP란? 쿠키에는 인증 상태를 나타내는 민감한 정보가 보관되며, 브라우저 내부에 저장되어 있다. 브라우저가 웹 서비스에 접속할 때 브라우저는 자동으로 쿠키를 헤더에 포함시켜 request를 서버에 보낸다는 사실을 알고 있다. 만약, 이용자가 악의적인 페이지에 접속할 때, 이 페이지가 JS를 사용해서 이용자의 SNS 웹 서비스로 request를 보내면 어떻게 될까? 브라우저가 request를 보낼 때, 헤더에 해당 웹 서비스 쿠키를 포함시킬 것이다. 따라서 JS로 request를 보낸 페이지는 로그인된 이용자의 SNS response를 받을 것이다. 또한, 마음대로 페이지 접속자의 SNS에 글을 올리거나, 삭제하고, SNS 메신저를 읽는 것도 가능할 것이다. 이러한 문제점을 막기 위해 동일 출처 정책, Same O.. 2024. 1. 5.
[Dreamhack] Cookie 문제 풀이 우선, 쿠키로 인증 상태를 관리하는 로그인 서비스 문제이므로 웹으로 접속하자. 여기서, Login 버튼을 누르면, 로그인 페이지가 나온다 이제, 문제에서 주어진 파일을 통해 압축을 풀어서 python 파일을 열어보자 #!/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.. 2024. 1. 4.