Wargame/Web26 [Dreamhack] web-deserialize-python 1. 문제 Python(pickle)의 Deserialize(역직렬화) 취약점을 이용해 FLAG를 획득하는 문제 코드 #!/usr/bin/env python3 from flask import Flask, request, render_template, redirect import os, pickle, base64 app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() # Flag is here!! except: FLAG = '[**FLAG**]' INFO = ['name', 'userid', 'password'] @app.route('/') def index(): return render_.. Wargame/Web 2023. 6. 22. [Dreamhack] login-1 1. 문제 admin 권한을 가진 사용자로 로그인하여 FLAG를 획득하는 문제 힌트 더보기 브루트 포스 공격 컨디션 레이스 공격 코드 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for, session, g import sqlite3 import hashlib import os import time, random app = Flask(__name__) app.secret_key = os.urandom(32) DATABASE = "database.db" userLevel = { 0 : 'guest', 1 : 'admin' } MAXRESETCOUNT = 5 try: FLAG .. Wargame/Web 2023. 6. 20. [Dreamhack] sql injection bypass WAF 문제 flag : DH{} 형식 init.sql CREATE DATABASE IF NOT EXISTS `users`; GRANT ALL PRIVILEGES ON users.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass'; USE `users`; CREATE TABLE user( idx int auto_increment primary key, uid varchar(128) not null, upw varchar(128) not null ); INSERT INTO user(uid, upw) values('abcde', '12345'); INSERT INTO user(uid, upw) values('admin', 'DH{**FLAG**}'); INSERT INTO use.. Wargame/Web 2023. 5. 24. [Dreamhack] file-csp-1 문제 https://dreamhack.io/wargame/challenges/36/ file-csp-1 문제에서 요구하는 조건에 맞게 CSP를 작성하면 플래그를 획득할 수 있습니다. Reference Introduction of Webhacking dreamhack.io 풀이 1. 코드 분석 1) /verify 페이지에서 if문의 조건을 만족하면 flag를 얻을 수 있다. 2) if문을 만족해야한다. @APP.route('/verify', methods=['GET', 'POST']) def verify_csp(): global CSP if request.method == 'POST': csp = request.form.get('csp') try: options = webdriver.ChromeOption.. Wargame/Web 2022. 7. 6. [Dreamhack] session 문제 https://dreamhack.io/wargame/challenges/266/ session 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Background: Cookie & Session dreamhack.io 풀이 session-basic의 응용편이다. 코드를 보자. admin이어야지 flag 값을 볼 수 있다. def index(): session_id = request.cookies.get('sessionid', None) try: username = session_storage[session_id] except KeyError: return render_template('index... Wargame/Web 2022. 7. 4. [Dreamhack] File Vulnerability Advanced for linux 문제 https://dreamhack.io/wargame/challenges/417/ File Vulnerability Advanced for linux Description Exercise: File Vulnerability Advanced for Linux에서 실습하는 문제입니다. dreamhack.io 풀이 1. admin 페이지에서 cmd가 된다. 2. admin페이지에 접속하려면 API_KEY를 알아야 한다. 3. API_KEY를 알기 위해서는 저 값을 담고있는 파일을 읽어야 한다. admin페이지 /admin?API_KEY='API 키 값' 으로 접근할 수 있다. access log의 위치는 /var/log/nginx/nginx_access.log 이다. (nginx.conf 에서 확인가능) .. Wargame/Web 2022. 6. 23. [Dreamhack] CSRF Advanced 문제 https://dreamhack.io/wargame/challenges/442/ CSRF Advanced Exercise: CSRF Advanced에서 실습하는 문제입니다. dreamhack.io 풀이 csrf-2와 다르게 change password 페이지가 따로 있다. 코드를 보니, 이번에는 pw, csrftoken 값이 필요하다. csrftoken 값은 username + ip주소를 md5 암호화한 값이라고 한다. 그러면, admin의 csrf 값은 admin127.0.0.1를 md5 암호화한 값이다. 아래에 값을 넣어보자. https://coding.tools/kr/md5 MD5 암호화 온라인 도구 - Coding.Tools 이 MD5 암호화 온라인 도구는 입력 문자열을 고정 된 128 비트.. Wargame/Web 2022. 6. 22. [Dreamhack] csrf-2 문제 https://dreamhack.io/wargame/challenges/269/ csrf-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 풀이 코드를 보니, 풀이의 큰 틀은 이렇다. 1. admin으로 로그인해야 flag값을 알 수 있다. 2. /change_password 페이지에서 admin의 비번을 바꾸어준다. username = admin pw = admin 으로 바꾸어주자. 그리고 admin으로 로그인하면 아래와 같이 flag값을 얻을 수 있다. Wargame/Web 2022. 6. 22. [Dreamhack] csrf-1 문제 https://dreamhack.io/wargame/challenges/26/ csrf-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. Reference Client-side Basic dreamhack.io 문제풀이 admin일 경우, memo 페이지에 flag를 출력해주는 문제이다. 코드를 보니 조건은 아래와 같이 두가지이다. 1. frame, script, on 태그 사용x 2. admin일것 2번의 조건의 경우, ip가 127.0.0.1 & userid=admin이어야 하므로 아래 notice flag페이지에서 직접 바꾸면 안된다. 그러므로, 아래와 같이 작성한다. Wargame/Web 2022. 6. 22. [Dreamhack] XSS Filtering Bypass 문제 https://dreamhack.io/wargame/challenges/433/ XSS Filtering Bypass Exercise: XSS Filtering Bypass에서 실습하는 문제입니다. dreamhack.io 문제풀이 xss-1, xss-2와 전반적으로 같다. 두개와 차이점은 아래와 같이 script, on, javascript를 필터링한다는 점이다. 여기서 주의할 점은 script -> on -> javascript 순서로 필터링된다는 것이다. 이 스크립트문은 xss-1에 썼던 것이다. javascript에도 script가 포함되어 있으니 조심해야한다 ! script => scronipt location => locatiojavascriscriptptn locatiojavascrisc.. Wargame/Web 2022. 6. 21. [Dreamhack] XSS-2 문제 https://dreamhack.io/wargame/challenges/268/ xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS dreamhack.io 문제풀이 xss-1과 비슷하다. vuln(xss) page에 들어가보면, 아래와 같이 script 태그를 우회하는 것을 알 수 있다. img 태그와 svg/onload 태그는 잘 작동하는 것을 볼 수있다...! 그러면 flag 페이지에는 아래와 같은 스크립트 문을 넣으면 memo 페이지에 flag가 출력된다. 나는 img 태그를 이용했다. Wargame/Web 2022. 6. 21. [Dreamhack] XSS-1 문제 https://dreamhack.io/wargame/challenges/28/ xss-1 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Client-side Basic dreamhack.io 문제풀이 페이지는 1. vuln(xss) page 2. memo 3. flag 이 세가지로 나뉜다. 코드를 보자. cookie 값에 flag 값이 존재한다고 한다. vuln(xss) page페이지는 xss공격에 취약하지만, 쿠키값이 뜨지 않는다.. memo 페이지는 html 태그 필터링을 해서 xss공격이 불가능하다. flag 페이지에서 이제 스크립트 문을 실행시켜보자. vul.. Wargame/Web 2022. 6. 21. 이전 1 2 3 다음