드림핵

프롤로그어제것도 그렇고 딱히 글 쓸 생각은 없었는데 curl 이랑 Dreamhack Tools 쓰는 거 정리도 할 겸 라이트업 작성   문제https://dreamhack.io/wargame/challenges/73 blind-commandRead the flag file XD Reference Web Hackingdreamhack.io   코드 및 분석#!/usr/bin/env python3from flask import Flask, requestimport osapp = Flask(__name__)@app.route('/' , methods=['GET'])def index(): cmd = request.args.get('cmd', '') if not cmd: return "?c..
프롤로그문제 다 풀고나서, 이러한 문제들이https://dreamhack.io/lecture/roadmaps/15 Web Hacking Advanced - Client Side웹 해킹 심화 클라이언트 사이드 로드맵입니다.dreamhack.io이런 로드맵에 포함되어있다는 것을 알았다. 개념 모르고..아 물론 knockon 부트캠프하면서 어느정도 배워놔서 이 지식갖다가 푼 거긴 하지만;;저 강의들을 보면서 해볼까   문제https://dreamhack.io/wargame/challenges/434?writeup_page=2 XSS Filtering Bypass AdvancedDescription Exercise: XSS Filtering Bypass의 패치된 문제입니다. 문제 수정 내역 2023.08.04 ..
프롤로그버프 스위프 사용법을 이제야 다시 확인한 기분;;저거 안 돼서 억울해 죽을 뻔했다.    문제https://dreamhack.io/wargame/challenges/1151 BypassIFDescription Admin의 KEY가 필요합니다! 알맞은 KEY값을 입력하여 플래그를 획득하세요. 플래그 형식은 DH{...} 입니다.dreamhack.io   코드 및 분석app = Flask(__name__)try: FLAG = open("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"일단 flag.txt로부터 파일을 읽고 해당 내용을 FLAG 라는 변수에 저장한다.KEY = hashlib.md5(FLAG.encode()).hexdigest()gue..
프롤로그하루 1문제 풀이가 될까 싶지만..knockon 부트캠프도 끝났겠다 이제 자율적으로 뭔가를 해야할 상황인 것 같고 그래서 문제 풀이좀 자주 해보려고 한다.   문제https://dreamhack.io/wargame/challenges/417 File Vulnerability Advanced for linuxDescription Exercise: File Vulnerability Advanced for Linux에서 실습하는 문제입니다. 문제 수정 내역 2023.07.28 Dockerfile 수정dreamhack.io File Vulunerability 파일 경로와 관련된 문제라고 추측이 된다.    코드 및 분석import os, subprocessfrom functools import wraps..
프롤로그시간이 부족해  문제https://dreamhack.io/wargame/challenges/343 [wargame.kr] tmitterDescription you need login with "admin"s id! create table tmitter_user( idx int auto_increment primary key, id char(32), ps char(32) );dreamhack.io 코드는 따로 주어지지 않았다  코드처음 입장했을 때 이렇게 존재하고, 소스코드는 TMITTER is not fake twitter! :p have an account? New to Tmitter? ID PS 여기서 확인할 수 있다. 그리고 문제조건에서 나온..
프롤로그학회 때문에 바빠죽겠는데 할 건 해야지..  문제https://dreamhack.io/wargame/challenges/931 random-testDescription 새 학기를 맞아 드림이에게 사물함이 배정되었습니다. 하지만 기억력이 안 좋은 드림이는 사물함 번호와 자물쇠 비밀번호를 모두 잊어버리고 말았어요... 드림이를 위해 사물함 번호와dreamhack.io드림이는 바보야..  코드#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport randomapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is ..
프롤로그워게임 Error based SQL Injection 을 풀면서, SQL Injection에는1. Error Based SQL Injection: GET/POST/HTTP헤더/쿠키 등에 ' or ; 삽입시 SQL 관련 에러를 통해 DB의 정보를 예상(1) '을 넣어서 Error based SQL Injection이 뜨는지 확인(2) ' and db_name() > 1 -- 로, 등으로 DB명 확인(3) 칼럼명 확인 2.  Union Based SQL Injection: 공격자가 Union을 이용하여 원래의 요청에 추가 쿼리를 삽입하여 정보를 얻어내는 방식-> Union쿼리는 앞에거랑 필드개수가 같아야함' union select 1, 2, 3, 4, 5, 6# 이런식으로 사용 3. Blind bas..
문제https://dreamhack.io/wargame/challenges/1186 what-is-my-ipDescription How are they aware of us even behind the wall? FYI Flag Location: /flag Flag Format: DH{...}dreamhack.io  소스코드#!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag(): user_ip = reques..
프롤로그하루 1 워게임 도전중  문제소스코드를 다운받아도, 아무것도 없길래 일단 넘어가겠다. 그래서 사이트를 접속하게 되면get source 부분이 있는데 저것을 클릭하면 소스코드"; echo "FLAG : ".$FLAG; } }else{ echo "wrong.."; } }?>IDPW get source  코드 분석맨 밑에 주석처리되어 있는 you have blocked accounts.guest / guestblueh4g / blueh4g1234ps이게 아마 아이디, 비밀번호일것이다. isset($_POST['id']) && isset($_POST['ps'])여긴 POST 요청으로 아이디, 비밀번호가 요청된 게 있는 확인하는 곳mysqli_connect("localhost", $DB_u..
프롤로그CSRF 관련된 풀이는 오랜만이라서 개념부터 다시 정리하고, 이전 CSRF-1번 문제 되돌아보면서 이 CSRF Advanced 문제를 풀어보자  CSRF교차 사이트 요청 위조(Cross Site Request Forgery)쿠키 또는 세션을 사용해 이용자를 식별하는데, 임의 이용자의 쿠키를 사용할 수 있다? 그러면 임의 이용자의 웹 서비스 기능을 사용할 수 있다.CSRF는 임의 사용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점이다.  CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행하여야함.-> 메일/게시판에 글을 작성해 이용자가 이를 조회하도록 유도 IMG 태그나 FORM 태그로 요청보내면 세션아이디값이 같이 간다중요한건CSRF는 이용자가 임의 페..
프롤로그화이트햇 하면서 공책받고나서 거기다가 열심히 적으면서 하다가 블로그 정리 안 하긴 했는데블로그 정리가 훨씬 더 좋은 거 같다.  문제  문제코드#app.pyimport osfrom flask import Flask, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['..
0. 프롤로그https://dreamhack.io/wargame/challenges/353 Return to LibraryDescription Exploit Tech: Return to Library에서 실습하는 문제입니다.dreamhack.io  1. 사전 공부 및 작업2. 문제   3. 코드 분석  4. 스택 구조   5. 예상 공격 방법   6. 카나리 값 획득   7. system.의 plt 주소 확인8. 리턴 가젯   9. /bin/sh의 주소 찾기10. 실행 11. 에필로그시간 투자를 굉장히 많이함.