CTF
-
[Clear]1337UP LIVE CTF Lovely Kitten Pictures 1 WriteupCTF/1337UP LIVE CTF 2022 2022. 3. 14. 06:29
주어진 페이지에 접근해보자 switch를 누르면 고양이 사진이 바뀌는데, 호출되는 경로는 pictures.php?path=assets/2.jpg 와 같은 형식이다. path에 ../../../../../../etc/passwd 와 같이 입력해보았으나 유효하지 않았다. 맨 뒤에 ?.jpg 를 제외하고 assets/ 디렉토리를 호출하니 플래그를 획득할수있었다. FLAG = 1337UP{K1TT3N_F1L3_R34D}
-
[Study] CODEGATE2022 myblog WriteupCTF/CODEGATE2022 2022. 3. 1. 15:33
주어진 페이지에 접근해보자. 회원가입을 하고 로그인하면, 글을 작성하고 읽을 수 있는 기능이 구현되어있다. 주어진 소스코드를 분석해보자. /usr/local/tomcat/conf/catalina.properties ### Dockerfile FROM ubuntu:20.04 RUN apt-get -y update && apt-get -y install software-properties-common RUN apt-get install -y openjdk-11-jdk RUN apt-get -y install wget RUN mkdir /usr/local/tomcat RUN wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.75/bin/apache-tomc..
-
[Study] CODEGATE2022 babyfirst WriteupCTF/CODEGATE2022 2022. 3. 1. 15:00
주어진 페이지에 접근해보자. 사용자명을 입력하면 메모를 남길 수 있는 서비스가 제공되고 있다. Dokerfile을 보면 플래그는 /flag 에 저장되어있음을 알 수 있다. ### Dockerfile FROM ubuntu:20.04 RUN apt-get -y update && apt-get -y install software-properties-common RUN apt-get install -y openjdk-11-jdk RUN apt-get -y install wget RUN mkdir /usr/local/tomcat RUN wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.75/bin/apache-tomcat-8.5.75.tar.gz -O /tmp..
-
[Clear] CODEGATE2022 superbee WriteupCTF/CODEGATE2022 2022. 3. 1. 14:21
주어진 페이지에 접근해보자. 404 Error page가 나와 다소 당황스럽지만, beego 2.0.0 을 사용한다는 점을 확인 하고 주어진 소스코드를 분석해보자. 우선 app.conf 파일에 글로벌 파라미터처럼 보이는 값들이 존재하지만, auth_key, password, flag 값은 숨겨져있다. ### app.conf app_name = superbee auth_key = [----------REDEACTED------------] id = admin password = [----------REDEACTED------------] flag = [----------REDEACTED------------] 아래와 같이 index.html과 login.html 페이지가 존재함을 알 수 있다. index...
-
[Clear] CODEGATE2022 CAFE WriteupCTF/CODEGATE2022 2022. 3. 1. 12:08
주어진 페이지에 접근해보자. CAFE라는 서비스를 이용 할 수 있는 페이지가 나타나며, 회원가입 후 로그인하면 글을 읽고 Report를 통해 서버가 해당 작성글을 읽을 수 있도록 하는 것 같다. 전형적인 XSS문제처럼 보인다. 주어진 소스를 분석해보자. 우선 플래그를 읽는 방법을 분석해보자. db.sql 파일에서 데이터베이스가 어떻게 세팅되는지 분석해보면, 마지막 두 줄에 걸쳐 admin계정 생성 후 admin 계정으로 "flag" 라는 title에 플래그 값을 content로 하는 글을 작성함을 알 수 있다. ### db.sql CREATE DATABASE IF NOT EXISTS `app` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; use `app`; C..
-
[Clear] Hayyim CTF 2022 Not E WriteupCTF/Hayyim CTF 2022 2022. 2. 13. 11:32
주어진 페이지에 접근해보면 아래와같이 로그인 후 노트를 기록할수있는 페이지가 나타난다. 주어진 소스를 분석해보자. app.js를 보면 prepareStatement와 유사하게 안전하게 처리되어있는 듯 보인다. const crypto = require('crypto'); const express = require('express'); const session = require('express-session'); const bodyParser = require('body-parser'); const { Database, md5, checkParam } = require('./utils'); const app = express(); const db = new Database(':memory:'); app.se..
-
[Clear] Hayyim CTF 2022 Cyberchef, Cyber Headchef WriteupCTF/Hayyim CTF 2022 2022. 2. 12. 12:58
Instance에는 CyberChef가, Bot에는 서버가 해당 URL을 접근하도록 하는 Bot이 구현되어 있다. const webdriver = require('selenium-webdriver'); const capabilities = webdriver.Capabilities.chrome(); const flag = require('fs').readFileSync('/flag').toString().trim(); const rateLimit = 30 * 1000; const pageTimeout = 3 * 1000; const urlPrefix = 'http://cyberchef:8000/'; const timestamps = new Map(); const sleep = (ms) => { return..
-
[Study] Real World CTF 4th Hack into Skynet WriteupCTF/Real World CTF 4th 2022. 1. 24. 21:02
주어진 페이지에 접근해보자. 다음과 같은 로그인페이지가 나타난다. 취약점을 찾기 위해 주어진 소스코드를 분석해보자. #!/usr/bin/env python3 import flask import psycopg2 import datetime import hashlib from skynet import Skynet app = flask.Flask(__name__, static_url_path='') skynet = Skynet() def skynet_detect(): req = { 'method': flask.request.method, 'path': flask.request.full_path, 'host': flask.request.headers.get('host'), 'content_type': flask..