본문 바로가기

DreamHack

(47)
[DreamHack] Client Side Template Injection https://dreamhack.io/wargame/challenges/437 Client Side Template Injection Description Exercise: Client Side Template Injection에서 실습하는 문제입니다. 문제 수정 내역 2023.08.09 Dockerfile 제공 dreamhack.io 난이도: Level 2 app.py #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask..
[DreamHack] Tomcat Manager https://dreamhack.io/wargame/challenges/248 Tomcat Manager Description 드림이가 톰캣 서버로 개발을 시작하였습니다. 서비스의 취약점을 찾아 플래그를 획득하세요. 플래그는 /flag 경로에 있습니다. dreamhack.io 난이도: Level 2 image.jsp image.jsp 파일을 보면, 어떠한 필터링 없이 파일 명을 바로 입력받는 것을 볼 수 있습니다. 즉, LFI 취약점이 존재하여 서버에 내부 파일을 읽을 수 있습니다. 위와 같이, /etc/passwd 파일에 접근해 보면 image 형태로 뜨고 내용이 보이지 않습니다. 그 이유는 response.setContentType("image/jpeg"); 코드로 인해 응답을 이미지 형태로 전달받기..
[DreamHack] funjs https://dreamhack.io/wargame/challenges/116 funjs Description 입력 폼에 데이터를 입력하여 맞으면 플래그, 틀리면 NOP !을 출력하는 HTML 페이지입니다. main 함수를 분석하여 올바른 입력 값을 찾아보세요 ! dreamhack.io 난이도: Level 2 index.html Find FLAG ! 변수명과 함수명이 임의의 값으로 설정되어 있어 코드를 해석하기 어렵기 때문에, 알아보기 쉽게 변수명과 함수명을 수정해 줍니다. 이후, flag 변수 이전까지의 코드를 돌리고 나면, 여러 중요 키워드들을 얻을 수 있습니다. 이것을 하면서 실수했었던 점이 func2 밑에 함수를 실행시켜보지 않고, func2(0x183) 값을 손으로 직접 구하다보니 이상한 키워드..
[DreamHack] weblog-1 https://dreamhack.io/wargame/challenges/71 weblog-1 주어진 코드와 로그를 분석해 주어진 질문에 해당하는 답을 찾아보세요. Reference Server-side Basic Server-side Advanced - SQL Injection dreamhack.io 난이도: Level 2 - Level 0 (admin 패스워드 탈취) 위 지문을 읽고 access.log를 확인해 보았습니다. admin 키워드로 검색하여 찾아보던 중 /admin 에서 활동하는 로그가 있어 위로 올라가 보니 Blind SQL Injection을 시도한 로그가 있었습니다. admin 패스워드를 알아내기 위해 시도한 로그를 찾아보니 17101번 줄부터 users 테이블에 대해 Blind SQL..
[DreamHack] DOM XSS https://dreamhack.io/wargame/challenges/438 DOM XSS Description Exercise: DOM XSS에서 실습하는 문제입니다. 문제 수정 내역 2023.08.11 Dockerfile 제공 dreamhack.io 난이도: Level 2 app.py #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) non..
[DreamHack] CSS Injection https://dreamhack.io/wargame/challenges/421 CSS Injection Description Exercise: CSS Injection에서 실습하는 문제입니다. 문제 수정 내역 2023.08.09 Dockerfile 및 bot 일부 수정 dreamhack.io 난이도: Level 3 문제 풀이 새로운 계정 생성 및 로그인 후, MyPage로 들어가면 위와 같이 API Token이 존재하는 것을 확인할 수 있습니다. main.py def token_generate(): while True: token = ''.join(random.choice(string.ascii_lowercase) for _ in range(8)) token_exists = execute('SELECT ..
[DreamHack] Relative Path Overwrite Advanced https://dreamhack.io/wargame/challenges/440 Relative Path Overwrite Advanced Exercise: Relative Path Overwrite의 패치된 문제입니다. dreamhack.io 난이도: Level 2 index.php Relative-Path-Overwrite-Advanced Home Vuln page Report Relative Path Overwrite 문제와 동일하게 경로 조작이 불가능하도록 필터링되어 있는 것을 확인할 수 있습니다. vuln.php Relative Path Overwrite 문제와 동일하게 코드가 포함되어 있고, 유저로부터 입력받은 param 값을 소문자로 변환하여 필터링을 거치는 것을 알 수 있습니다. static..
[DreamHack] Relative Path Overwrite https://dreamhack.io/wargame/challenges/439 Relative Path Overwrite Exercise: Relative Path Overwrite에서 실습하는 문제입니다. dreamhack.io 난이도: Level 2 index.php Relative-Path-Overwrite Home Vuln page Report 경로 조작이 불가능하도록 필터링되어 있는 것을 확인할 수 있습니다. vuln.php 코드가 포함되어 있고, 유저로부터 입력받은 param 값을 소문자로 변환하여 필터링을 거치는 것을 알 수 있습니다. Vuln Page에 접속하면, 위와 같은 화면이 나오게 되고, 아래와 같이 네트워크를 확인해 본 결과 filter.js가 실행되고 있었습니다. filter.j..