(58) Dreamhack easy-login 문제 풀이
문제 설명 관리자로 로그인하여 플래그를 획득하세요! 플래그 형식은 DH{...} 입니다. 문제 풀이 처음 사이트에 접속하면 이런 로그인 창이 하나 있습니다. 계정도 모르고 otp도 알 수 없으니 일단 코드 부터 확인해 봅시다. 먼저 index.php입니다. <?php function generatePassword($length) { ...
문제 설명 관리자로 로그인하여 플래그를 획득하세요! 플래그 형식은 DH{...} 입니다. 문제 풀이 처음 사이트에 접속하면 이런 로그인 창이 하나 있습니다. 계정도 모르고 otp도 알 수 없으니 일단 코드 부터 확인해 봅시다. 먼저 index.php입니다. <?php function generatePassword($length) { ...
문제 설명 Daddy told me I should study arm. But I prefer to study my leg! 문제 풀이 설명에서 알 수 있듯이 이번 문제는 arm과 관련된 문제입니다. ssh 연결 주소 말고도 gdb disas 결과와 소스코드가 제공됩니다. 먼저 c코드부터 보겠습니다. #include <stdio.h> ...
중간이 코앞이라 공부할 시간이 부족하네요.. 문제 설명 Do you know about “padding oracle vulnerability” ? 문제 풀이 처음에 들어가면 다른건 아무것도 없고 로그인 창이 하나 있습니다. 일단 입력되어있는 값을 그대로 두고 로그인을 해보면 guest로 로그인이 되긴 하는데 admin 세션을 얻는게 미션이라...
문제 설명 Mom? how can I pass my input to a computer program? 문제 풀이 이번 문제도 같은 구성입니다. 이번 소스코드는 조금 깁니다. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/...
지난주에 1개 밖에 못올리기도 했고, 선거라 마침 쉬니까 오늘은 2문제 올려봅니다. 문제 설명 How are they aware of us even behind the wall? 문제 풀이 사이트에 처음 들어온 모습입니다. 별다른건 없고 제 아이피만 보입니다. 바로 코드를 확인해봅시다. #!/usr/bin/python3 import os fr...
문제 설명 Daddy, teach me how to use random value in programming! 문제 풀이 이번에도 역시나 3개의 파일이 존재합니다. random.c부터 확인해 봅시다. #include <stdio.h> int main(){ unsigned int random; random = rand(); ...
문제 설명 .htaccess crack! can you local bruteforce attack? 문제 풀이 사이트에 들어가면 위와 같습니다. 별건 없고 .htpasswd를 다운받을 수 있도록 되어 있습니다. 아마 패스워드를 찾아내서 입력하면 flag를 주는 문제인가 봅니다. .htpasswd .htpasswd는 HTTP인증을 이용하여 사...
문제 설명 Mommy told me to make a passcode based login system. My initial C code was compiled without any error! Well, there was some compiler warning, but who cares about that? 문제 풀이 파일은 위와 같이 존재 ...
문제 설명 Admin의 KEY가 필요합니다! 알맞은 KEY값을 입력하여 플래그를 획득하세요. 플래그 형식은 DH{…} 입니다. 문제 풀이 처음 사이트에 접속한 모습입니다. 입력하고 제출하는 버튼만 보일뿐 별다른건 보이지 않네요. 바로 코드를 확인해보겠습니다. #!/usr/bin/env python3 import subprocess from fl...
문제 설명 Papa brought me a packed present! let’s open it. Download : http://pwnable.kr/bin/flag This is reversing task. all you need is binary 문제 풀이 리버싱 하라고 합니다. 일단 flag파일을 받아서 r2로 열어봤습니다. 분석하려고 함...
문제 설명 산타할아버지가 작년에 빌었던 선물을 이제서야 주셨는데 상태가 legacy(유산)이네요. 문제 풀이 먼저 사이트에 들어오면 이런 페이지가 있습니다. 여기선 건질게 없으니 바로 코드를 확인해 봅시다. const express = require("express"); const node_fetch = require("node-fetch");...
문제 설명 Nana told me that buffer overflow is one of the most common software vulnerability. Is that true? 문제 풀이 이번 문제는 앞서 풀어본 문제와는 다르게 nc로 접속하는 방식입니다. 따라서 첨부된 소스코드 부터 확인하겠습니다. #include <stdio.h...
문제 설명 초보 개발자 민수는 실수로 development 환경을 사용해 배포해버리고 말았습니다.. 문제 풀이 사이트에 들어온 모습입니다. 소스코드를 보면 guest/guestPW라는 계정이 있습니다. 일단 로그인해보면 admin이 아니라고 합니다. 그럼 제공되는 소스코드를 살펴보겠습니다. const express = require("exp...
문제 설명 Daddy told me about cool MD5 hash collision today. I wanna do something like that too! 문제 풀이 파일이 뭐가 있는지 부터 확인해보겠습니다. 이렇게 3개의 파일이 존재 합니다. 소스코드 파일인 col.c를 열어보면 #include <stdio.h> #inc...
문제 설명 SQL injection Challenge! (injection) - thx to dmbs335 문제 풀이 사이트에 접속한 모습입니다. 바로 코드부터 확인해보겠습니다. <?php if (isset($_GET['view-source'])) { show_source(__FILE__); exit()...
3월이 시작된 기념으로 앞으로는 포너블도 같이 풀이하도록 하겠습니다. 일주일에 포너블 하나, 드림핵 웹해킹 하나는 최소한 올릴 수 있도록 하겠습니다. 문제 설명 Mommy! what is a file descriptor in Linux? 문제 풀이 들어와서 ls를 쳐보니 위와 같은 3개의 파일이 존재 했습니다. fd는 실행 파일로, 실행해보면...
문제 설명 Node로 구현된 간단한 서버입니다. 취약점을 찾아 Flag를 획득하세요! Flag는 /app/flag 에 있습니다. ( 플래그형식은 FLAG{} 입니다. ) 문제 풀이 접속해보면 사이트에 별거 없고 문자열만 하나 보입니다. 바로 코드를 확인해 보겠습니다. const express = require('express'); const coo...
문제 설명 드림이는 갤러리 사이트를 구축했습니다. 그런데 외부로 요청하는 기능이 안전한 건지 모르겠다고 하네요… 갤러리 사이트에서 취약점을 찾고 flag를 획득하세요! flag는 /flag.txt에 있습니다. 문제 풀이 처음 사이트에 들어가면 선글라스들이 있습니다. 외부로 요청하는 기능에 취약점이 있다고 했으니 이 페이지가 우리가 flag를 ...
2024/2/17까지 총 40개의 Dreamhack 문제풀이 게시글 이동을 완료하였습니다. 3월달이 되면 바빠질 것 같아서 앞으로 글은 매일 올리지는 못할 것 같습니다. 그래도 최소한 1주 1개 이상 글을 작성하도록 하겠습니다.
문제 설명 This challenge is part of Just For Fun [Season3]. - thx to Comma@LeaveRet 문제 풀이 이 문제는 vi 에디터가 사용가능한 환경에서만 풀 수 있습니다. 사이트에 처음 들어오면 이런 alert이 반겨줍니다. 힌트가 swp라고 하네요. 일단 확인을 눌러보겠습니다. 로그인하는 화면...
문제 설명 덧셈 식을 입력하면 계산 결과를 출력하는 웹 서비스입니다. ./flag.txt 파일에 있는 플래그를 획득하세요. 플래그 형식은 DH{...} 입니다. 문제 풀이 사이트에 들어오면 이런게 있습니다. 이런식으로 입력하면 덧셈 결과가 나오는 사이트 입니다. 코드를 보겠습니다. #!/usr/bin/python3 from flask imp...
문제 설명 파일을 관리할 수 있는 구현이 덜 된 홈페이지입니다. 문제 풀이 일단 사이트에 들어가면 이런 사이트가 나옵니다. 파일을 만들어서 업로드하는 것으로 보입니다. 여기서 뭔가 될것 같진 않으니 코드를 보면서 다른 페이지가 있는지 확인해 봅시다. const express=require('express'); const bodyParser=req...
문제 설명 플래그는 DH{[0123456789abcdef]{32}}의 포맷입니다. 문제 풀이 이번 문제는 개인 서버를 이용하거나 html 호스팅을 해주는 사이트를 이용해야 풀 수 있는 문제입니다. 포트포워딩하시고 직접 서버 여셔도 됩니다. 사이트에 들어온 모습입니다. search 페이지 입니다. 여기에 뭔가를 입력하면 이렇게 뭔가 나옵니다. ...
문제 풀이 이 문제는 전에 올렸던 Dreamhack Relative Path Overwrite의 업그레이드 문제입니다. 사이트는 저번과 똑같은데 404 페이지가 추가 되었습니다. 존재하지 않는 페이지에 접속을 시도하면 위와 같이 {입력한 url} not found.가 보여집니다. 404 페이지의 코드는 다음과 같습니다. <?php h...
문제 풀이 또 그 페이지 입니다. 일단 메인페이지 입니다. 코드는 특별한건 없습니다. <html> <head> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <title>R...
문제 설명 문제 풀이 사이트에 처음 들어오면 이런 페이지가 나옵니다. 구글을 입력했더니 이렇게 html을 가져옵니다. 일단은 여기까지 밖에 할 수 있는게 없으니 코드를 보겠습니다. import socket import requests import ipaddress from urllib.parse import urlparse from flas...
문제 풀이 오늘도 그 페이지 입니다. 바로 코드를 봅시다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import u...
문제 풀이 많이 보더 페이지군요. 코드부터 후딱 봅시다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import u...
문제 설명 php로 redis를 관리하는 서비스 입니다. 취약점을 찾고 flag를 획득하세요! 문제 풀이 이건 처음 접속 화면입니다. index.php의 코드는 다음과 같습니다. <?php include_once "./core.php"; ?> <html> <head></head> &...
문제 설명 md5('value', true); 딸랑 이거 주고 끝입니다. 암튼 md5함수는 알겠는데 뒤에 있는 true는 뭐하는 거냐? 라고 하실 수 있는데, 원래는 16진수로 줄걸 raw binary로 줍니다. 즉 문자 형태로 준다는 거죠. 이게 이 문제의 핵심입니다. 이제 문제를 봐 봅시다. 문제 풀이 사이트에 들어가면 패스워드 입력창이 하...
문제 설명 드림이가 톰캣 서버로 개발을 시작하였습니다. 서비스의 취약점을 찾아 플래그를 획득하세요. 플래그는 /flag 경로에 있습니다. 문제 풀이 일단 들어오면 이것 밖에 없습니다. 뭐라도 해야하니까 문제 파일을 열어보겠습니다. 이 3가지 밖에 없습니다. 소스 코드는 없는걸까요? ROOT.war 파일이 소스코드들이 모여있는 파일입니다. 반디...
문제 설명 문제 풀이 제공된 로그 파일을 분석해서 php로 구현된 문제 사이트에서 문제를 풀면 flag를 줍니다. 로그파일이 너무 길고, 소스코드는 거의 볼 필요가 없기 때문에 로그 파일은 일부분만, 그리고 필요한 소스코드만 올리도록 하겠습니다. 그럼 첫번째 문제입니다. 로그 파일을 보면 172.17.0.1 - - [02/Jun/2020:09:...
문제 설명 문제에서 요구하는 조건에 맞게 CSP를 작성하면 플래그를 획득할 수 있습니다. 문제 풀이 사이트에는 아래 두 페이지가 구현되어 있습니다. 위의 /test페이지는 굳이 쓸 필요가 없어서 보진 않겠습니다. 코드를 살펴봅시다. #!/usr/bin/env python3 import os import shutil from time impor...
문제 설명 Session Login이 구현된 서비스입니다. Python(pickle)의 Deserialize 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt 또는 FLAG 변수에 있습니다. 문제 풀이 사이트에는 아래의 두 페이지가 있습니다. 세션 만드는 것 부터 보면 asdf / 1234 / password! 로 입력했더니 g...
문제 풀이 전에도 본적 있는 템플릿의 사이트 입니다. import os from flask import Flask, request from flask_mysqldb import MySQL app = Flask(__name__) app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost'...
문제 설명 python으로 작성된 로그인 기능을 가진 서비스입니다. “admin” 권한을 가진 사용자로 로그인하여 플래그를 획득하세요. 문제 풀이 사이트가 어떻게 구현되었는지 살펴봅시다. 로그인 페이지는 위와 같은 평범한 로그인 페이지이고, sqli는 안됩니다. 비밀번호를 복구하는 페이지도 있는데, backupCode라는게 있어야 하는 모양입니...
문제 설명 관리자의 비밀번호는 “아스키코드”와 “한글”로 구성되어 있습니다. 문제 풀이 사이트를 들어가 보면 이런 사이트가 나옵니다. 코드를 확인해 겠습니다. import os from flask import Flask, request, render_template_string from flask_mysqldb import MySQL app =...
문제 설명 입력 폼에 데이터를 입력하여 맞으면 플래그, 틀리면 NOP !을 출력하는 HTML 페이지입니다. main 함수를 분석하여 올바른 입력 값을 찾아보세요 ! 문제 풀이 파일은 index.html 하나만 있습니다. 서버도 제공되지 않습니다. <html> <head> <style>*{margin: ...
문제 설명 Buffalo wings, also known as hot wings or chicken wings… 문제 풀이 들어오면 맛있는 버팔로 윙의 사진이 챗GPT의 정성스런 설명과 함께 보입니다. 첨부된 코드를 보면 bot/bot/py에서 flag가 cookie로 추가되는걸 보고 xss 문제인가 싶지만… 딱히 flag를 얻어낼 수 있는 취약...
문제 설명 아모카페에 오신 것을 환영합니다! 메뉴 번호를 입력하여 주문할 수 있는 웹 서비스가 작동하고 있습니다. 아모의 최애 메뉴를 대신 주문해 주면 아모가 플래그를 준다고 합니다. 첨부파일로 주어지는 웹 서비스의 코드를 분석하여 메뉴 번호를 알아 내세요! 플래그는 flag.txt 파일과 FLAG 변수에 있습니다. 문제에서 주어진 flag.txt ...
문제 설명 php로 작성된 페이지입니다. 알맞은 Id과 Password를 입력하여 플래그를 획득하세요. 플래그의 형식은 DH{…} 입니다. 문제 풀이 들어오면 이런 사이트가 나옵니다. 바로 코드로 넘어가겠습니다. index.php는 form으로 check.php로 id와 pw만 넘겨주고, flag.php는 단순히 flag만 변수로 가지고 있어서...
문제 설명 로그인 시 계정의 정보가 출력되는 웹 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 문제에서 주어진 init.sql 파일의 테이블명과 컬럼명은 실제 이름과 다릅니다. 플래그 형식은 DH{...} 입니다. 문제 풀이 먼저 init.sql 입니다. CREATE DATABASE secret_db; GRANT ALL...
문제 설명 Simple Compare Challenge. hint? you can see the title of this challenge. :D 문제 풀이 들어가면 있는 소스코드 부터 확인해보겠습니다. <?php if (isset($_GET['view-source'])) { show_source(__FILE__); exit...
문제 설명 javascript game. can you clear with bypass prevent cheating system? 문제 풀이 쉬운 풀이 먼저 사이트에 들어오면 이러한 게임 사이트가 나옵니다. 마우스로 조작하는 게임인데, 게임오버가 되면 31337점을 따야한다고 합니다.(심심하시면 그냥 직접 해봐도) 암튼, 그냥 하면 한참 ...
문제 풀이 app.js var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); const nano = require('nano')(`htt...
문제 설명 node와 mongodb로 구성된 게시판입니다. 비밀 게시글을 읽어 FLAG를 획득하세요. MongoDB < 4.0.0 문제 풀이 먼저 사이트에 들어가 보겠습니다. Write에는 아래와 같이 글을 작성할 수 있는 기능이 있네요. 들어가보면 이렇게 나옵니다. 우리가 알아야 하는건 FLAG페이지의 내용일 겁니다. 들어가면...
문제 설명 파일 업로드 기능을 악용하여 서버의 권한을 획득하세요 ! .htaccess htaccess는 hypertext access의 약자로, 이 파일이 있는 디렉토리는 서버 메인 설정과 별개로 해당 디렉토리와 그 하위 디렉토리에 대한 설정을 변경할 수 있습니다. 다양한 설정들이 있으나, 이번에 사용해볼 것은 AddType이라는 지시어 입니다. ...
문제 설명 로그인 시 계정의 정보가 출력되는 웹 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 문제에서 주어진 init.sql 파일의 테이블명과 컬럼명은 실제 이름과 다릅니다. 플래그 형식은 DH{...} 입니다. 문제 풀이 먼저 사이트에서 로그인 페이지에 들어온 모습입니다. 이번 문제는 app.py 하나만 제공합니다...
문제 풀이 들어오면 이런 사이트가 뜹니다. 일단 index.php 코드부터 보겠습니다. <html> <head></head> <link rel="stylesheet" href="/static/bulma.min.css" /> <body> <div clas...
문제 설명 I have accounts. but, it’s blocked. can you login bypass filtering? 문제 풀이 일단 들어오면 이런 사이트가 나옵니다. get source를 누르면 아래 코드가 나옵니다. <?php if (isset($_GET['view-source'])) { show_source(__...
문제 풀이 XSS 문제에서 본 그 템플릿인데 로그인과 비밀번호 변경 기능이 생겼습니다. 코드 입니다. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium.webdriver.common.by i...
문제 풀이 사이트에 들어가면 이렇게 생겼습니다. 먼저 init.sql입니다. # init.sql CREATE DATABASE IF NOT EXISTS `users`; GRANT ALL PRIVILEGES ON users.* TO 'dbuser'@'localhost' IDENTIFIED BY 'dbpass'; USE `users`; CREATE T...
문제 설명 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. chatGPT와 함께 풀어보세요! 문제 풀이 코드 부터 보겠습니다. #!/usr/bin/env python3 import subprocess from flask import Flask, ...
문제 설명 Simple Error Based SQL Injection ! Error Based Sqli 말 그대로 에러를 기반으로 sql injection을 하는 겁니다. 결과를 알려주지 않고 에러만 알려주는 못된(?) 사이트에서 쓸 수 있는 기법입니다. extractvalue() extractvalue 함수는 XML 형식(1번째 인자)에서 XP...
문제 설명 어딘가 이상한 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. chatGPT와 함께 풀어보세요! 문제 풀이 사이트에 접속하면 아래와 같은 로그인 페이지가 구현되어 있습니다. 코드는 다음과 같습니다. #!/usr/bin/python3 from flas...
문제 풀이 먼저 들어오면 이런 모습입니다. vuln 페이지에는 뭐가 없네요. 개발자 도구로 코드를 뜯어보니 param을 그대로 반영한 듯 싶습니다. xss 취약점이 있을 수 있겠네요. memo는 들어갈 때 마다 hello를 띄워주네요. flag는 이렇게 되어 있습니다. POST 요청을 날려주네요. 그럼 이제 코드를 확인해 봅시다. #!/us...
문제 설명 php로 작성된 Back Office 서비스입니다. LFI 취약점을 이용해 플래그를 획득하세요. 플래그는 /var/www/uploads/flag.php에 있습니다. LFI 취약점 LFI 취약점은 Local File Inclusion의 약자로, 로컬(서버)에 있는 파일을 사용하는 취약점을 뜻합니다. 주로 php로 만들어진 사이트에서 inc...
문제 설명 존재하지 않는 페이지 방문시 404 에러를 출력하는 서비스입니다. SSTI 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. SSTI 일단 ssti는 공격자가 서버의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입하여 서버에서 실행되도록 하는 취약점을 말합니다. 예를 들자면 이런겁니다. inde...
문제 설명 Raw Socket Sender가 구현된 서비스입니다. 요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 문제 풀이 일단 사이트에 접속해 봅니다. 이런 사이트가 나타납니다. Raw Socket Sender에서 플래그를 획득해야 하니 들어가 봅니다. 사이트만 봐도 host port data...