Web: 보물 페이지 숫자 중에 비밀이 하나 있고 그 곳에 모든 것을 두고왔다는 것을 보니 그 곳에 플래그가 있는 것 같다 보물 내 페이지 숫자 중엔 비밀이 하나 있지...그곳에 보물을 숨겨놨다. 원한다면 찾아봐라 모든 것을 그곳에 두고 왔다! Page 1 Page 2 Page 3 소스 코드를 보니 form의 method는 get방식인 것을 확인할 수 있었다 page에 넘기는 value를 다르게 주고 있는 것 같으니 확인해보자 우선 페이지 3개를 확인해보니 아래 암호같은 문자열이 출력되는 것을 확인할 수 있었다 page= 뒤에 값을 다르게 주면 이 문자열이 변하는 것 같아 다른 숫자도 입력해 보았다 ㅎ.. 1부터 20까지 하나하나 입력해본 결과 문자열은 모두 다르게 출력되지만 FLAG는 찾을 수 없어 더..
Web: Button 버튼을 이용해서 플래그를 출력하는 문제인 것 같다 하지만 버튼을 눌렀을 때 이전에 풀었던 hidden처럼 url의 인자에 변화가 있다던가하는 특이점은 없었다 BUTTON 아래의 버튼으로 하여금 플래그를 출력하게 해줘! button의 method가 post이며 input 타입이 정해져있는 것을 확인할 수 있다 하지만 입력 폼이 따로 있거나 하지는 않아서 버튼 자체를 이용해야 한다고 추측했다 우선 변경 가능한 값음 name과 value 정도가 될 수 있을 것 같다 우선 버튼이 submit이고 form은 method가 post로 설정되어 있다 문제에서 버튼으로 하여금 플래그를 출력하게 해달라는데... 다음과 같이 input 태그의 name을 "flag"로 변경해보았다 변경한 후에 버튼을 ..
Web: Hidden 5번 파일에 플래그가 있다는데 버튼은 4까지 밖에 없다.. 우선 버튼을 누르면 어떻게 변화가 일어나는지 살펴보았음 1번을 눌렀을 때 "Nop"이라는 메시지를 담은 경고창이 뜨면서 포트번호 뒤에 /?id=1이 추가된 것을 확인할 수 있다 1번부터 4번까지 눌러보았을 때 1번을 눌렀을 때와 크게 다른점은 확인할 수 없었다 id의 번호만 변경될 뿐이었기 때문에 이 id를 5로 변경하면 무엇인가 얻을 수 있지 않을까? 라고 추측해보았다 예상대로 id를 5로 변경하니 플래그를 획득할 수 있었다 성공 :)
Web: / 페이지를 접속하니 로봇 사진이 나오면서 플래그가 숨어있다고 한다 사실 hidden flag라고해서 간단하게 주소 뒤에 /flag /hidden /hiddenflag /hidden_flag 등 다양하게 붙여봤지만 실패했다..! 그래서 다시 문제에 집중해 대체 왜 로봇사진이 있을까 생각해보았고 구글에 web robot이라고 쳐보니 아래 사이트를 찾을 수 있었다 웹 로봇(Web Robots)에 대해 알아보기 : robots.txt Index goodgid.github.io robots.txt라는 파일이 있다고 하는데 혹시나 싶은 마음에 /robots.txt를 쳐보았다 뭔가 새로운 화면이 나왔다 /robot_flag/를 disallow해놨다고 쓰여져 있다 이를 이용하여 페이지를 이동해보자 플래그를 ..
simple_sqli 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 * [Dreamhack] Exercise: SQL Injection * [Dreamhack] Exercise: Blind SQL Injection # 배경 지식 - 본 문제에서는 SQLite를 이용해 데이터베이스를 관리하고 있음 - SQLite: 기존에 알려진 MySQL, MSSQL, Oracle 등과 유사한 형태의 데이터베이스 관리 시스템 - SQLite는 데이터 관리를 위한 일부 필수 기능만을 지원하기 때문에 기존 관리 시스템에 비해 비교적 경량화된 데이터 베이스 관리 시스템으로 널리 알려져 있음 - SQLite는 많은 양의 컴퓨팅 리소스를 제공하..
CSRF-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 CSRF 취약점을 이용해 플래그를 획득하세요 # 접속 로그인을 해달라는 문구가 보인다 # 코드 확인 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" users = { 'guest..
CSRF-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 CSRF 취약점을 이용해 플래그를 획득하세요 * [Dreamhack] Exercise: CSRF # 문제 목표 및 기능 요약 - CSRF-1 문제의 목표는 CSRF를 통해 관리자 계정으로 특정 기능을 실행시키는 것 - 문제에서는 다음 네 페이지를 제공함 # 엔드포인트: /vuln - vuln 함수 @app.route("/vuln") # vuln 페이지 라우팅 (이용자가 /vuln 페이지에 접근시 아래 코드 실행) def vuln(): param = request.args.get("param", "").lower() # 이용자가 입력한 param 파라미터를 소문자로 변경 xss_filter = ["frame", "script", ..
xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다 XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 # 접속 xss-1 문제와 다르지 않은 페이지가 보인다 # 코드 확인 #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(u..
xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다 * [Dreamhack] Exercise: XSS # 문제 목표 및 기능 요약 - 목표: XSS를 통해 이용자의 쿠키를 탈취하는 것 # 엔드포인트: /vuln - 이용자가 전달한 xss 파라미터의 값을 출력 @app.route("/vuln") def vuln(): param = request.args.get("param", "") # 이용자가 입력한 vuln 인자를 가져옴 return param # 이용자의 입력값을 화면 상에 표시 # 엔드포인트: /memo - 이용자가 전달한 memo 파라미터 값을 render_template 함수..
funjs 입력 폼에 데이터를 입력하여 맞으면 플래그, 틀리면 NOP!을 출력하는 HTML 페이지입니다. main 함수를 분석하여 올바른 입력 값을 찾아보세요! # 접속 문제를 열어보니 입력 폼이 요기조기 돌아다닌다 아무 값이나 입력해보니 문제 설명대로 NOP! 를 출력한다 # 코드 확인 Find FLAG ! 위와 같은 소스코드를 확인할 수 있었다 text2img가 인자로 받은 값을 사용해 플래그를 출력해주는 역할을 하는 함수같았고, _0x1046[] 리스트 안에 함수 이름들이 중간중간 보인다 # Exploit if (flag[_0x374fd6(0x17c)] != 0x24) { text2img(_0x374fd6(0x185)); return; } for (var i = 0x0; i < flag[_0x374..