카테고리 없음

팀 프로젝트_Wargame Site 제작하기

ljm 2025. 10. 27. 12:39

 

STARMAP: Wargame Constellation Chanllenge

 

초기 메인화면

 

문제를 풀면 다음 사진처럼 별을 밝힐 수 있다. (모든 별자리를 밝히는것이 이 워게임의 목표)

 


 

총 20문제의 세부 페이지 

 

 


각 페이지의 정답 FLAG 값 테이블 (정답판별)

 


내가 제작한 문제들

 

11번 문제.

<Stored Cross-Site Scripting (XSS) with Context Escape and Filter Bypass>

 

comment값이 입력되면 </textarea>로 닫히는것을 확인하였고, star-flag값이 존재한다는것을 확인

 

 

XSS공격 취약점이 있다는것을 확인하였고 필터링되는 단어가 존재하는것을 확인
</textarea>로 구문을 닫아주고 img src로 스크립트 실행

</textarea><img src=x onerror="document.getElementById('flag-output').innerHTML='Flag: '+star_flag+''">

 

해당 페이지는 XSS 취약점을 가지고있는 게시판 형식의 페이지입니다. <textarea>와 같은 특정 HTML 구조를 파괴하여 취약점을 발생시켜야 하며,  단순히 XSS를 찾는 것이 아니라, <script>태그의 필터링과, alert와 같은 기초 함수의 필터링을 피해서 XSS 공격을 해야하는 구조입니다.

 

 


 

12번 문제.

<Union-Based SQL Injection>

 

 

ID : a' UNION SELECT 'attacker', flag_value FROM users WHERE username = 'admin' -- 
PW : 1

 

 

 

 

UNION SELECT와 같은 명령어를 사용하여 쿼리의 결과를 합치는 방법을 알아야 합니다. SQL 문법의 주석 처리 구문 (-- 또는 #)을 사용하여 뒤따라오는 원래의 쿼리 부분을 무력화시켜야 합니다. 쿼리가 성공적으로 조작되면, 서버의 응답을 통해 숨겨진 flag_value를 획득할 수 있습니다.

 

 

 


13번 문제.

<Broken Access Control (Parameter-Based)>

 

 

 

 

개발자가 사용자 권한(Role) 기반의 검증 대신 파라미터 값 기반의 검증에 의존할 경우, 인가되지 않은 사용자(Unauthenticated User)가 관리자 영역에 쉽게 접근할 수 있다는 Broken Access Control의 위험성을 알 수 있는 문제

 

파라미터값이 ?zone=secret 인 페이지로 이동하면 admin의 flag 값을 얻을 수 있다.

 

파라미터 값은 무차별 대입 공격(Brutal Attack)을 통해서 얻을 수 있다. (ffuf tools)

http://localhost/starmap/problem_13.php?zone=secret

 


14번 문제.

<Server-Side Request Forgery (SSRF)>

 

 

 

file:///var/www/html/starmap/admin_flag.txt

 

 

  • 취약한 기능: 사용자 입력 URL을 받아 URL 미리보기를 생성하는 기능입니다.
  • 작동 방식: 사용자가 URL을 입력하면, 사용자의 브라우저(클라이언트)가 직접 요청하는 것이 아니라, 웹 서버가 이 URL을 읽어 들여 서버 내부에서 해당 URL로 새로운 HTTP 요청을 보냅니다.
  • SSRF 조건 충족: 공격자가 요청의 주체인 서버에게 강제로 요청을 위조하도록 시키는 것이기 때문에 SSRF로 분류됩니다.

 

SSRF의 가장 큰 위험은 외부 인터넷 URL뿐만 아니라, 서버의 내부 네트워크나 파일 시스템에 접근할 수 있게 되는 것입니다. 서버가 file:// 프로토콜을 필터링하지 못했기 때문에, 서버는 외부 인터넷에 요청을 보내는 대신 자신의 로컬 하드 드라이브에서 해당 텍스트 파일을 읽어와 공격자에게 반환하게 됩니다.

 

 

 


15번 문제.

IDOR (Insecure Direct Object Reference)

 

 

 

 

 

 

/uploads15?file_id=3

 

 

 

  • 취약점 유형: Insecure Direct Object Reference (IDOR)
  • 문제 의도: 이 페이지는 사용자가 업로드한 파일을 다운로드할 때, 서버가 사용자 세션이나 권한을 확인하는 대신, URL의 파일 ID 파라미터직접적이고 안전하지 않게 사용합니다.
  • 취약한 경로: 파일 다운로드 URL이 ../uploads15?file_id=?와 같이 파일의 내부 ID를 그대로 노출하는 것이 핵심입니다.
  • 공략 방법: 참가자는 자신의 파일 ID(예: id=1)로 파일을 다운로드한 후, 이 ID 값을 다른 사용자의 파일 ID일 것으로 추정되는 값(id=3)으로 단순히 변경합니다. 서버가 요청된 파일 ID(id=3)에 대한 접근 권한 검사 없이 파일을 반환하면, 참가자는 관리자 또는 다른 사용자의 파일(플래그 값)을 획득하게 됩니다.