연휴가 끝나고, 못 푼 1일 1문제를 몰아서 풀어보려고 한다. 연휴때는 제8회 BoB BISC CTF를 참여했는데, 2문제밖에 못풀었다.. (대충 2개만 풀고 놀러가서 못했다는 핑계) (사실 어려워서 못품 ㅋ..) BISC CTF 기간이 끝나면, 풀었던 문제 writeup을 올려볼까 한다. 그 중에서도 포렌식문제는 상위권으로 풀었다 ! 잡소리는 여기까지 하고, 이번 문제 정보는 다음과 같다. 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 그리고 주어지는 문제 파일과 홈페이지는 다음과 같다. 간단하게, 메인페이지와 로그인페이지가 나온다. 해당 웹은 flask로 작성되어 있다. #!/usr/bin/python3 from ..
문제 정보는 다음과 같다. 기본 설정을 사용한 서비스입니다. 로그인한 후 Organization에 플래그를 설정해 놓았습니다. 문제를 다운로드 받고, 접속 정보를 요청해서 사이트를 들어가면 다음과 같은 페이지가 나온다! Grafana가 뭘까.. 검색해보니 Grafana는 멀티플랫폼 오픈 소스 애널리틱스 및 인터랙티브 시각화 웹 애플리케이션이라고 나왔다. (출처: 위키백과) 간단하게, 오픈소스 대시보드 도구라고 할 수 있다. 여기서 주어진 파일은 ini 설정 파일인데 열어보자. 열어보면 709줄되는 내용이 나오는데, 힌트가 될만한 내용을 뽑아보자. 우선, 문제 정보가 Organization에 플래그를 설정했다고 한다. Organization을 Ctrl+F를 통해 찾아보면 다음과 같은 내용이 나오고, ###..
문제는 다음과 같다. 존재하지 않는 페이지 방문시 404 에러를 출력하는 서비스입니다. SSTI 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 문제 정보를 확인한 뒤, 가상환경에 진입하면 다음과 같이 나온다! 해당 두 개의 링크 중 위로 들어가게 되면 404 에러를 출력하는 /404Error 페이지가 나오고, 밑에 robots.txt 링크를 클릭하면 해당 경로와 Page Not Found 페이지가 나오게 된다. 이렇게 두 경로의 페이지만으로는 정확히 알기가 어렵다. 우선, SSTI 취약점이 무엇인지 살펴보자! 다음 내용은 이글루 시큐리티를 참고하였다. (출처: https://www.igloo.co.kr/security-information/%EC%9B%B9-%..
문제 정보는 다음과 같다. php로 작성된 Back Office 서비스입니다. LFI 취약점을 이용해 플래그를 획득하세요. 플래그는 /var/www/uploads/flag.php에 있습니다. ❗LFI 취약점이란? > 공격 대상 서버에 위치한 파일 등을 포함하여 해당 내용을 읽어오는 공격이다. > 일반적으로 php 코드 상 include를 사용할 때, input에 대한 필터링이 적절히 이루어지지 않아서 발생하는 취약점이다. > 또한, 디렉토리 변경 명령어들을 삽입했을 때 허용되면 일어나는 취약점이다. > 대부분 LFI 취약점은 url을 통해 이루어지는데, 이는 개발자가 GET 메소드를 선호하기 때문으로 볼 수 있다. 그 다음 문제 가상환경으로 접속해보자! 총 3가지의 화면을 볼 수 있다. 그리고 나서 문제..
문제 정보는 다음과 같다. Raw Socket Sender가 구현된 서비스입니다. 요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 해당 문제 정보를 파악하고 가상환경에 접속해보자. 접속하여 Socket 페이지에 들어가면 다음과 같은 화면이 나온다. 이것이 바로 오늘 우리가 넘어야할 산이다 ❗ 그 다음, 주어진 코드를 살펴보자. app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' @app.route('/') def index(): return render_template('index.html') @app.route('/socket', method..
1일 1문제 START 이번에 풀어볼 문제는 Path Traversal 취약점을 이용하여 /api/flag에 있는 플래그를 획득하는 것이다. 해당 Path Traversal 취약점이 무엇인지 우선 알아보자. Path Traversal(Directory traversal)이란? 사용자로부터 입력 받은 path 형태의 백엔드에서 서비스 처리 로직이 존재할 때, 이를 조작하여 원하는 경로로 해커가 접근하여 동작을 수행하는 공격기법을 의미한다. File을 처리하거나 절대, 상대경로와 같은 구문으로 상위 디렉토리로 접근하거나 허용된 디렉토리 범위를 벗어나 공격을 수행하여 Directory traversal 이라고도 하는것 같다. ✔️ 여기에서 나오는 traversal이란? : 순회라는 뜻으로 보통 트리 순회(Tr..