반응형

전체 글 11

SOP & CORS

웹 보안을 공부하다 보면 가장 먼저 마주치는 장벽이 바로 SOP(Same-Origin Policy)와 CORS(Cross-Origin Resource Sharing)다. 흔히 CORS를 "에러 해결 수단"으로만 생각하지만, 보안 관점에서는 매우 정교한 접근 제어 메커니즘이다.오늘은 CORS가 정확히 무엇인지, 그리고 이를 파고드는 취약점 시나리오를 공격 코드와 함께 심층 분석해 본다. SOP(Same-Origin Policy)의 한계와 오해SOP는 브라우저가 다른 출처(Origin)의 응답에 접근하는 것을 막는 보안 정책이다. 하지만 많은 이들이 착각하는 사실이 있다."SOP는 요청 자체를 막아주는 방어 수단이 아니다." SOP 작동 메커니즘 (은행 예시)사용자가 hacker.com에 접속했을 때, 해..

Web 2026.03.25

sql injection bypass WAF Advanced

이번엔 Dreamhack sql injection bypass WAF Advanced 문제를 풀어볼 것이다. 정찰문제 URL에 접속하면 아래와 같이 나온다.uid를 입력하는 폼이 있길래 문제 파일을 다운로드하여 init.sql 파일을 보면INSERT INTO user(uid, upw) values('abcde', '12345');INSERT INTO user(uid, upw) values('admin', 'DH{**FLAG**}');INSERT INTO user(uid, upw) values('guest', 'guest');INSERT INTO user(uid, upw) values('test', 'test');INSERT INTO user(uid, upw) values('dream', 'hack');이..

Dreamhack/Web 2026.02.19

[Dreamhack] BISC board

이번엔 BISC board 문제를 풀어볼 거다. 웹페이지 정찰 먼저 접속을 하면 아래와 같이 로그인을 하라고 alert이 뜬다. 그러면 아래와 같이 /login 페이지가 나오는데 계정이 없으니 ID: 1111 PW: 1111로 회원가입 후 로그인 해보겠다. 로그인하면 아래와 같이 글 목록 페이지가 나온다. Write 버튼을 눌러서 글쓰기도 가능하다. XSS가 될까 싶어서 아래처럼 글을 써봤는데 XSS는 안 통하는 것 같다. 글을 수정할 때도 XSS는 없는 것 같아 코드를 보고 문제를 풀어보겠다. 코드 확인 먼저 app.js 코드를 봤는데에 계정 정보가 하드코딩 돼있었다.var accounts={"BISC2023":"TeamH4C"} 그 다음 views 디렉터리를 봤는데 아래와 같은 파일 들이 있었..

Dreamhack/Web 2025.11.25

[Dreamhack] phpmyredis

이번 글은 자세히 적지 않고 풀이 과정만 적을 예정이다. (귀찮음 이슈..) /config.php로 접속하면 아래와 같은 화면이 나온다. GET으로 조회를 할 수 있고 SET으로 설정을 할 수 있다. GET에서 Key에 *를 입력하면 아래와 같이 조회할 수 있는 모든 것이 나온다. dbfilename은 redis에 변경 사항이 있을시 해당 사항을 기록하는 파일.save는 변경사항이 몇 번 있을시 몇 분마다 기록을 할지를 설정하는 key이다. SET으로 save를 1 1 1 1 1 1로 바꿔주고 dbfilename을 exploit.php로 바꿔준다. 그다음 /로 돌아와서 `return ""` 를 입력해준다. 그러면 웹쉘이 업로드되고 /exploit.php?cmd = ls -al / 로 이동해보면 아래와..

Dreamhack/Web 2025.11.24

Cookie Sandwich

이번엔 Cookie Sandwich에 대해 다뤄볼 거다.해당 내용은 https://blog.snoopbees.com/http-cookie-sandwich-attack-6ba8110e0e02 에 있는 내용을 참고했다. Cookie Sandwich가 무엇인지 알기 전에 먼저 Cookie가 뭔지 알아야한다.원래는 Cookie Tossing 글에서 이걸 먼저 다뤘어야 하지만.. 까먹고 못 했다 ^_^그래서 이 글에서 간단히 Cookie가 무엇인지 설명할 거다.(잠깐 간단히 말하면 Cookie Sandwich로 HttpOnly 속성이 설정된 쿠키 값을 탈취할 수 있다.) Cookie란Cookie는 Server가 사용자의 Web browser에 저장하도록하는 작은 데이터 조각이다.Browser는 이 데이터를 저장해..

Attack Method 2025.08.31

Cookie Tossing

이 글에서는 Cookie Tossing에 대해 설명한다.해당 내용은 https://labs.snyk.io/resources/hijacking-oauth-flows-via-cookie-tossing/ 블로그를 참고했다.Cookie Tossing이란Cookie Tossing이란 공격자가 웹사이트의 하위 도메인을 이용하여 악의적인 쿠키를 상위 도메인으로 보내는 공격 기법이다. Cookie 설정 방법Cookie는 HTTP Response의 Set-Cookie 헤더나 JS Cookie API를 통해 설정할 수 있다.Set-Cookie 헤더를 이용하는 경우HTTP Response에 Set-Cookie를 포함해 쿠키를 설정할 수 있다.예시는 아래와 같다.HTTP/1.1 200 OKSet-Cookie: userId=p..

Attack Method 2025.08.22

[Dreamhack] PATCH-1

이번 dreamhack 문제는 코드를 패치하는 문제다.지금까지 취약점 공격만 해봤지 취약점 패치는 해본 적이 없어서 새로웠다.#!/usr/bin/python3from flask import Flask, request, render_template_string, g, session, jsonifyimport sqlite3import os, hashlibapp = Flask(__name__)app.secret_key = "Th1s_1s_V3ry_secret_key"def get_db(): db = getattr(g, '_database', None) if db is None: db = g._database = sqlite3.connect(os.environ['DATABASE']) db.row_fa..

Dreamhack/Web 2025.08.20

[Dreamhack] chocoshop

이번엔 dreamhack chocoshop 문제를 풀 거다.웹페이지에 접속하면 바로 보이는 페이지다. 세션이 요구되므로 Acquire Session 버튼을 눌러서 세션을 발급받는다. 그러면 이렇게 세션을 발급 받을 수 있고 오른쪽 위에는 현재 잔액이 표시된다. SHOP 버튼을 누르면 빼빼로 또는 플래그를 구매할 수 있다. MYPAGE 버튼을 누르면 위와 같이 나오고 Claim 버튼을 눌러서 쿠폰을 발급받을 수 있고 Submit에 쿠폰을 입력하여 쿠폰을 적용시킬 수 있다. 적용하면 쿠폰이 적용됐다는 알림과 함께 1000원이 생긴 것을 확인할 수 있다.하지만 이걸로는 FLAG를 구매하지 못 한다.쿠폰은 한 번밖에 적용 못 하고 발급도 안 돼서 방법이 없다. 문제 설명에는 이렇게 써져 있는데 쿠폰을 레이스 ..

Dreamhack/Web 2025.08.13
반응형