csrf - 1

2026. 1. 11. 21:19·Dreamhack 워게임/Lv.1
반응형

문제 설명

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.

 

CSRF 취약점을 이용해 플래그를 획득하세요.


코드 분석

엔드포인트: /vuln

  • 이용자가 전달한 param 값을 출력한다.
  • 이때 "frame", "script", "on" 키워드는 "*"로 치환한다.

엔드포인트: /memo

  • 이용자가 전달한 memo 값을 기록함
  • render_template() 함수를 통해 출력됨

엔드 포인트: /admin/notice_flag

  • 로컬호스트(127.0.0.1)에서 접근안하면 "Access Denied" 출력
  • userid 가 admin 이 아니면 "Access Denied 2" 출력
  • 127.0.0.1이고 admin 이면 FLAG 메모장에 출력

엔드 포인트: /flag

 

GET 

  • flag.html 렌더링함

POST

  • param 값을 가져와 check_csrf의 인자로 넣고 호출함

check_csrf() 함수

  • check_csrf()는 인자를 다시 CSRF 취약점이 발생하는 URL의 파라미터로 설정하고, read_url함수를 이용해 방문함

read_url() 함수

  • URL

 

URL은 서버가 동작하고 있는 로콜 호스트의 이용자가 방문하는 시나리오이기 때문에 127.0.0.1의 호스트로 접속하게 됨


취약점 분석

/vuln 기능은 이용자의 입력 값을 페이지에 출력한다. 

이때 frame, script, on 키워드는 필터링되지만 필터링 키워드 이외 <,> 나 다른 키워드와 태그는 사용할 수 있기 때문에 CSRF 공격을 수행할 수 있다.


익스플로잇

/vuln 페이지에서 CSRF 공격이 가능하다. 

따라서 공격코드가 삽입된 /vuln 페이지를 다른 이용자가 방문할 경우, 의도하지 않은 페이지로 요청을 전송하는 시나리오로 익스플로잇을 구상해야 한다.

플래그를 얻기 위해서는 /admin/notice_flag 페이지로 로컬호스트에서 접근해야 한다.

 

이를 위해, CSRF 공격으로 /vuln 페이지를 방문하는 로컬호스트 이용자가 /admin/notice_flag 페이지로 요청을 전송하도록 공격 코드를 작성해야 한다. 

 

CSRF 취약점 테스트

<img src="https://bbvxhue.request.dreamhack.games">

 

img 태그로 CSRF 취약점이 있다는 것을 알 수 있음

 

로컬호스트에 위치하는 이용자가 /admin/notice_flag 페이지를 방문하도록 해야 하기 때문에 아래와 같이 공격 코드를 작성해야 한다.

이때, userid  파라미터가 admin 인지 검사하는 부분이 존재하기 때문에 해당 문자열을 포함해야 한다.

<img src="/admin/notice_flag?userid=admin" />

 

반응형

'Dreamhack 워게임 > Lv.1' 카테고리의 다른 글

simple_sqli  (1) 2026.01.15
csrf-2  (1) 2026.01.11
session-basic  (0) 2026.01.09
XSS - 2  (0) 2026.01.01
XSS -1  (0) 2025.12.31
'Dreamhack 워게임/Lv.1' 카테고리의 다른 글
  • simple_sqli
  • csrf-2
  • session-basic
  • XSS - 2
y3onbug5
y3onbug5
y3onbug5 님의 블로그 입니다.
  • y3onbug5
    y3onbug5 님의 블로그
    y3onbug5
  • 전체
    오늘
    어제
    • 분류 전체보기 (167) N
      • Alpacahack (19) N
      • Dreamhack 워게임 (49)
        • Lv.1 (40)
        • Lv.0 (4)
        • LV.2 (3)
        • LV.3 (2)
      • [Dreamhack] Web Beginner (3)
      • [Dreamhack] Web Hacking (17)
        • 웹 기초 지식 (4)
        • Cookie & Session (2)
        • Cross-Site Scripting(XSS) (1)
        • Cross-Site Request Forgery (1)
        • SQL Injection (4)
        • NoSQL Injection (2)
        • Command Injection (1)
        • File Vulnerability (1)
        • Server-Side Request Forgery (1)
      • [Dreamhack] Web Hacking Client-Side (10)
        • XSS Filtering Bypass (2)
        • Content Security Policy (CSP) (2)
        • CSRF,CORS Bypass (2)
        • Client-Side Template Injection (CSTI) (1)
        • CSS Injection (1)
        • Relative Path Overwrite (RPO) (1)
        • DOM Vulnerability (1)
      • [Dreamhack] Web Hacking Server-Side (15)
        • SQL Injection Advanced (4)
        • SQL Injection Advanced - Fingerprinting (2)
        • NoSQL Injection Advanced (3)
        • Command Injection Advanced - Web Servers (3)
        • File Vulnerability Advanced - Web Server (3)
      • [Dreamhack]Black-Box Penetration Testing (15)
        • DreamCommunity Penetration Testing (11)
      • [Dreamhack] LLM (2)
        • [Dreamhack] LLM과 프롬프트 엔지니어링 (2)
      • Web 공부 (4)
      • Web Study (15)
      • JavaScript (17)
        • 기초 (12)
        • 중급 (4)
      • 웹 개발(Flask) (0)
      • [Security First] web 기초교육 (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    xss
    DreamHack
    JS
    JavaScript
    드림핵
    LLM
    alpacahack
    web
    cve
    CSRF
    webhacking
    webstudy
    hacking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
y3onbug5
csrf - 1
상단으로

티스토리툴바