Wargame30 [Dreamhack] ROT128 1. 문제 주어진 encfile을 복호화하여 flag 파일 내용을 알아낸 뒤, flag.png에서 플래그를 획득하는 문제 소스코드 #!/usr/bin/env python3 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] with open('flag.png', 'rb') as f: plain_s = f.read() plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] enc_list = list(range(len(plain_list))) for i in range(len(plain_list)): hex_b = plain_list[i] index = hex_list.index(hex_b) e.. Wargame/Crypto 2023. 7. 4. [TryHackMe] Jacob the Boss 이제야 올리는 라이트업.. 1. 문제 https://tryhackme.com/room/jacobtheboss# TryHackMe | Jacob the Boss Find a way in and learn a little more. tryhackme.com 각각 flag값을 갖고있는 user.txt, root.txt를 찾는 문제 공격머신을 이용할 수 있으나 1시간 이후에 유료라..^.^ OpenVPN을 이용했습니담 힌트 더보기 JBoss Application 취약점 2. 문제 풀이 더보기 피해자 IP : 10.10.36.52 공격자IP: 10.18.30.214 1. 포트 스캔 nmap을 이용하여 포트스캔 시도 nmap -sS -o 10.10.36.52 아래와 같은 결과를 볼 수 있다. 눈여겨볼만한건 80포트.. Wargame/Pwnable 2023. 6. 28. [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] broken-png 문제 https://dreamhack.io/wargame/challenges/104/ broken-png Description 드림컴퍼니에서 디자이너로 일하는 드림이는 직장 동료에게 내일 사용해야 하는 드림뱅크의 홍보 이미지를 메일을 통해 전달 받았습니다. 하지만 이메일 전송 과정에서 문제가 발생해 dreamhack.io 풀이 PNG 파일 시그니처 관련 문제이다. 이미지가 잘려있고, 원래는 정사각형이라는 힌트가 있다. 아래는 PNG 파일의 구조이다. PNG 파일의 크기는 Image header에 있다. hxd로 열었을때 image.png의 모습이다. 박스친 부분이 각각 가로, 세로이다. 0x01에 0x02를 넣어주자. 그럼 아래와 같이 원래 크기가 된다. Wargame/Misc 2022. 6. 22. [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. 이전 1 2 3 다음