


총 20문제의 세부 페이지




















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

내가 제작한 문제들
11번 문제.
<Stored Cross-Site Scripting (XSS) with Context Escape and Filter Bypass>



</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)에 대한 접근 권한 검사 없이 파일을 반환하면, 참가자는 관리자 또는 다른 사용자의 파일(플래그 값)을 획득하게 됩니다.