이번에 LG U+에서 열린 CTF를 참가해서 본선까지 갔다왔다예선은 어찌저찌 좋은 순위로 마감쳐서 본선에 갔었는데 본선에서 탈탈 털려버렸다....잠시 한탄을 하자면 본선에서 웹 3문제가 나왔는데 젤 어려운 문제를 처음부터 잡아서 나머지 웹이나 Misc 문제를 별로 못본게 너무너무 아쉽다.진짜 0솔짜리 하나만 풀었어도 순위권 가는거였는데..ㅠㅠ뭐 아직 실력이 부족한 탓이겠지...예선예선은 온라인으로 09:00~18:00까지 진행했다.예선 문제 Writeup은 Writeup제출 당시 적은걸로 대체하겠다.저거 Writeup에서 martini 문제풀이 부분에 session cookie값이 같으면 secret값도 같다고 되어있는데다시 생각해보니깐 그건 아닌거 같고 걍 리모트랑 문제파일 secret값을 같은거 써서..
Web Hacking/WriteUp
일본에서 주최한 SECCON CTF를 참여했다.그런데 난이도가 생각보다 너무 어려워서 좀 당황스러웠지만 재밌긴 했다.일단 Web문제에서 유심히 본건 총 3문제이다.1. Trillion Bankimport fastify from 'fastify';import crypto from 'node:crypto';import fs from 'node:fs/promises';import db from './db.js';const FLAG = process.env.FLAG ?? console.log('No flag') ?? process.exit(1);const TRILLION = 1_000_000_000_000;const app = fastify();app.register(await import('@fastify/j..
이 문제만 이틀동안 봤는데도 해결을 못했다 ㅠㅠ끝나고 올라온 writeup을 바탕으로 해결한 과정을 적어놓겠다. 일단 이 문제는 wasm(웹 어셈블리)문제이다.문제 접속하면 rust를 컴파일하라고 하고 js파일과 wasm파일 두개 올라온게 끝이다.일단 rust를 컴파일해서 wasm 파일을 만들면은 wasm파일을 import하기 위해 js와 같이 써야한다.요 부분이 그부분이다. 그다음 wasm파일을 디컴파일도 해보고 별짓을 다했는데 해결을 못했다.writeup을 보니 js파일에 state를 지정하는 부분이 있었는데 요 부분이 다시보니 의심스럽게 생기긴 했다. imports.wbg.__wbg_state_3308b4f9bac86286 = function(arg0) { const ret = g..
1. Cat Raterfrom flask import Flask, render_template, session, request, redirect, flashimport subprocessimport secretsimport randomimport redisimport uuidimport osimport reapp = Flask(__name__)app.secret_key = secrets.token_bytes(32)flag = os.environ.get('FLAG','ASIS{test-flag}')rds = redis.Redis(host='redis', port=6379)uuidReg = re.compile(r'^[\da-f]{8}-([\da-f]{4}-){3}[\da-f]{12}$', re.IGNOREC..
보호되어 있는 글입니다.