KERT/WarGame (10) 썸네일형 리스트형 [dreamhack] 파일 취약점 (image-storage, file-download-1) 첫 번째 문제: image-storage https://dreamhack.io/wargame/challenges/38 image-storage php로 작성된 파일 저장 서비스입니다. 파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다. Reference Server-side Basic dreamhack.io 파일 업로드 취약점과 관련한 문제이다. 플래그는 /flag.txt에 있다. index 페이지 index.php Image Storage Home List Upload Upload and Share Image ! Home 을 누르면 인덱스 페이지가 뜨고 List 를 누르면 리스트 페이지가 뜨고 Upload 를 누르면 업로드 페이지가 뜬다는 코드이다 그 외에 별 다른.. [dreamhack] Mango 문제 풀이 Description 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{…} 입니다. {‘uid’: ‘admin’, ‘upw’: ‘DH{32alphanumeric}’} 문제 파일 package.json { "name": "Web-C", "version": "1.0.0", "description": "Web-C", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1", "express-session": "^1.17.0", "mongoose": "^5.10... [dreamhack] simple_sqli 문제 풀이 문제파일 코드 #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassw.. [dreamhack] Exercise: SQL Injection 엔드포인트: /login Figure2는 로그인 페이지를 구성하는 코드입니다. 코드를 살펴보면, 메소드에 따른 요청마다 다른 기능을 수행하는 것을 알 수 있습니다. GET userid와 userpassword를 입력할 수 있는 로그인 페이지를 제공합니다. userid와 password 입력창에 guest를 입력하면 로그인을 수행할 수 있습니다. POST 이용자가 입력한 계정 정보가 데이터베이스에 존재하는지 확인합니다. 이때, 로그인 계정이 admin일 경우 FLAG를 출력합니다. login 페이지 코드 @app.route('/login', methods=['GET', 'POST']) # Login 기능에 대해 GET과 POST HTTP 요청을 받아 처리함 def login(): # login 함수 선언 .. [dreamhack] Exercise: CSRF Exercise: CSRF https://learn.dreamhack.io/203#2 로그인 | Dreamhack dreamhack.io 서론 이번 코스에서는 해당 취약점이 존재하는 드림핵 워게임 문제를 풀어보면서 관리자만 수행할 수 있는 메모 작성 기능을 이용해 보도록 하겠습니다. 배경 지식 본 문제는 파이썬 Flask 프레임워크를 통해 구현되었습니다. 해당 문제는 CSRF를 통해 관리자의 기능을 이용해야 하기 때문에, 관리자가 방문하는 시나리오가 필요합니다. 이러한 기능은 셀레늄을 통해 구현하였습니다. 문제 목표 및 기능 요약 CSRF-1 문제의 목표는 CSRF를 통해 관리자 계정으로 특정 기능을 실행시키는 것입니다. 문제애서는 다음 네 페이지를 제공합니다. 엔드포인트설명 / 인덱스 페이지 입니다. .. [dreamHack] xss-1, xss-2 [dreamhack] Exercise: XSS https://dreamhack.io/lecture/courses/184 Exercise: XSS xss-1를 함께 풀어봅니다. dreamhack.io 페이지설명 / 인덱스 페이지입니다. /vuln 이용자가 입력한 값을 출력합니다. /memo 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력합니다. /flag 전달된 URL에 임의 이용자가 접속하게끔 합니다. 해당 이용자의 쿠키에는 FLAG가 존재합니다. 엔드포인트: /vuln Figure1은 vuln 페이지를 구성하는 코드입니다. 코드를 살펴보면, 이용자가 전달한 param 파라미터의 값을 출력합니다. Figure 1. vuln 함수 @app.route("/vuln") def vuln(): param = request.args.get("param",.. [dreamhack] cookie 쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 이전 1 2 다음