CTF Cite : https://play.picoctf.org
1. MatchTheRegex (100points)
정규표현식*을 일치시켜 올바른 입력값을 찾아내는 문제이다.
✅ 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 메타문자와 수량자로 구성
웹사이트 접속)
문제 풀이)
웹사이트 접속 후 입력 창에 admin 입력 시도하였지만 실패하였다.
개발자도구(F12)를 사용하여 해당 페이지에 대한 코드를 확인해보았다.
코드 중 주석처리된 ^p……F!?가 정규표현식이라는 예측을 해보았다.
🗨️ 다른 코드 분석)
fetch(`/flag?input=${val}`)
fetch 함수를 사용하여 /flag?input=${val} 의 값을 요청한다.
const res_json = JSON.parse(res);
JSON.parse 함수 를 통해 res 값을 자바스크립트 객체로 변환한다.
alert(res_json.flag)
alert 함수 를 통해 res_json.flag를 메시지창에 띄워준다.
^p……F!? - 이 부분을 정규표현식 사이트로 어떤 의미인지 확인해본다.
정규표현식 사이트 : https://regexr.com
💡 정규표현식 결과, p로 문자열이 시작된 후에 5글자는 아무 문자나 입력해도 되고, 마지막에 F로 끝나야한다는 의미를 담고 있다.
정규표현식 조건을 맞춰서 submit 시켰더니 플래그가 출력되었다.
2. forbidden paths (200points)
절대 경로 필터링을 우회하여 /flag.txt 파일을 읽어내는 문제다. (웹사이트 파일- /usr/share/nginx/html에 존재)
✅ 절대 경로 : 절재적인 주소, 변하지 않는 주소를 경로로 지정
정적인 문자열을 통해 특정 컴퓨터의 파일 위치를 정확히 알려줌
예) /home/usr/ubuntu/workspace/ mypage/env/static/background.jpg
✅ 상대경로 : 하나의 파일이 있는 위치에서 다른 파일이 위치한 주소를 경로로 지정
예) ../static/background.jpg
웹사이트 접속)
문제 풀이)
절대주소가 필터링 되어있다고 했으므로 상대주소를 이용해야하는 것이 포인트이다.
💡 절대경로 : /usr/share/nginx/html/flag.txt → 상대경로 : ../../../../flag.txt
flag가 출력되었다.
'4-2. 2024-1 심화 스터디 > 워게임 도장 깨기' 카테고리의 다른 글
[6주차] 2024.05.10- Reversing War Game Write Up (0) | 2024.05.17 |
---|---|
[5주차] 2024.05.03 - Pwnable War Game Write Up (0) | 2024.05.10 |
[3주차] 2024.03.29 - Pwnable War Game Write Up (0) | 2024.03.29 |
[2주차] 2024.03.14 - Reversing War Game Write Up (1) | 2024.03.22 |
[1주차] 2024.03.11 - Web War Game Write Up (0) | 2024.03.15 |