문제 설명24로그인 서비스입니다.SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 정보`POST /login` 요청 시 HTTP Request와 Response는 다음과 같다. 유저로부터 `userid`, `userpassword` 값을 입력 받아 서버로 전송한다. 서버 측에서 실행되는 코드는 다음과 같다. 서버 구동 시 아래 DDL을 실행해 `users` 테이블에 초기값을 밀어 넣는다.DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(10..
문제 설명269여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.CSRF 취약점을 이용해 플래그를 획득하세요. 정보화면에서 알 수 있는 정보는 최소 3개의 페이지가 있다는 것이다.vuln(csrf) page 이동 시 쿼리 파라미터의 스크립트가 일부 치환된다.flag 페이지에서는`POST /flag`로 form 데이터를 전송할 수 있다.login 페이지에서는 `POST /login`으로 form 데이터를 전송할 수 있다.코드를 통해 각 페이지의 동작을 확인할 수 있다. 우선 다음 두 객체는 전역에서 접근이 가능하다. users = { 'guest': 'guest', 'admin': FLAG}session_storage = {} 추측하자면 `session_storage`는 아마 서버..
문제 설명26여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.CSRF 취약점을 이용해 플래그를 획득하세요. 정보화면에서 알 수 있는 정보는 최소 4개의 페이지가 있다는 것이다.vuln(csrf) page 이동 시 쿼리 파라미터의 스크립트가 일부 치환된다.memo 이동 시 `/memo?memo=hello`에 명시된 쿼리 파라미터가 화면에 출력된다.memo 페이지는 반복 접근 시 로그와 같이 쿼리 파라미터의 값이 계속해서 쌓인다.notice flag 페이지 진입 시 200 OK가 떨어지지만 `text/html`로 'Access Denied'가 반환된다.flag 페이지에서는`POST /flag`로 form 데이터를 전송할 수 있다.코드를 통해 각 페이지의 동작을 확인할 수 있다. `/vuln`..
문제 설명268여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.플래그 형식은 DH{...} 입니다. 정보화면에서 알 수 있는 정보는 최소 3개의 페이지가 있다는 것이다. vuln(xss) page 이동 시 쿼리 파라미터의 스크립트 코드는 실행되지 않는다.memo 이동 시 `/memo?memo=hello`에 명시된 쿼리 파라미터의 값이 출력된다.memo 페이지는 반복 접근 시 로그와 같이 쿼리 파라미터의 값이 계속해서 쌓인다.flag 페이지의 form은 `POST /flag`로 요청을 보낸다.코드를 통해 각 페이지의 동작을 확인할 수 있다. `/vuln` 페이지 접속 시 동작은 다음과 같다.@a..
문제 설명28여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.플래그 형식은 DH{...} 입니다. 정보화면에서 알수 있는 정보는 최소 3개의 페이지가 있다는 것이다. vuln(xss) page 이동 시 ``가 실행된다.memo 이동 시 `/memo?memo=hello`에 명시된 파라미터가 출력된다.memo 페이지는 반복 접근 시 로그와 같이 파라미터 내용이 계속해서 쌓인다.flag 페이지의 form은 `POST /flag`로 text 값을 전송한다.코드를 통해 각 페이지에서 어떤 로직이 동작하는지 확인할 수 있다. 먼저 `/vuln` 페이지 접속 시 동작은 다음과 같다.@app.route("/..
문제 설명834문제에서 요구하는 형식의 문자열을 입력하여 플래그를 획득하세요. 플래그는 `flag.txt` 파일과 `FLAG` 변수에 있습니다.플래그 형식은 DH{...} 입니다. 풀이해당 웹 서버 구동 코드는 다음과 같다.#!/usr/bin/python3from flask import Flask, request, render_templateimport reapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is here!except: FLAG = "[**FLAG**]"@app.route("/", methods = ["GET", "POST"])def index(): input_val = "" if ..
문제 설명873php로 작성된 페이지입니다.알맞은 Nickname과 Password를 입력하면 Step 2로 넘어갈 수 있습니다.Step 2에서 `system()` 함수를 이용하여 플래그를 획득하세요.플래그는 `../dream/flag.txt`에 위치합니다.플래그의 형식은 DH{...}입니다. 풀이Step 1 페이지의 form에 nickname과 password를 입력하고 일정 조건을 만족하면 Step 2로 넘어갈 수 있다. 따라서 nickname과 password를 알아낼 수 있는 정보는 `step.php` 파일에 있다.Step 2 : Almost done...'; $cmd = $_POST["cmd"] ? $_POST["cmd"] : ""; ..
- Total
- Today
- Yesterday
- Transaction
- Spring
- linux
- JPA
- opengraph
- math
- CSRF
- WEB
- java
- React
- PS
- webgoat
- askers
- sqli
- test
- Database
- oauth2
- Misc
- WarGame
- 회고
- Dreamhack
- Spring Security
- Bandit
- DP
- SEO
- sql injection
- XSS
- Framework
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |