web 5문제 밖에 못 풀었다. knock-knock const crypto = require('crypto'); class Database { constructor() { this.notes = []; this.secret = `secret-${crypto.randomUUID}`; } createNote({ data }) { const id = this.notes.length; this.notes.push(data); return { id, token: this.generateToken(id), }; } getNote({ id, token }) { if (token !== this.generateToken(id)) return { error: 'invalid token' }; if (id >= this..
대회가 끝나고 나서 바로 놀러가서 이제야 라업을 올린다. Hack into skynet #!/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.request.headers..
이번 주말동안 log4j2에서 발견된 취약점으로 인해 난리가 났었다. https://github.com/apache/logging-log4j2/commit/c77b3cb39312b83b053d23a2158b99ac7de44dd3#diff-271353c1076e53f6893261e4420de27d34588bfd782806b5c66a3465c43b7f51 패치는 8일 전에 됐는데 아마도 해커들이 이 커밋로그 보고 페이로드 짜서 열심히 쑤시고 다닌 것 같다. 그래서 다들 급하게 버전 업데이트하고 waf룰 설정하는 것 같은데 exploit 특성상 너무 쉽게 우회가 돼서 그냥 버전을 업데이트하는 것이 중요한 것 같다. 패치는 다음과 같이 이루어졌다. 1. log4j2.formatMsgNoLookups의 기본 옵션..
I'm sorry for writing only the exploit and scenario because I don't have enough time. filesharing #scenario 1. upload javascript file 2. share admin 3. xss in /play 4. bypass csp via error page 5 inject script into error pageexploit.js a = window.open('/' + 'x'.repeat(4100)); setTimeout(function() { a.document.body.innerHTML = ``; }, 1000);" payload https://filesharing.m0..
Squirrel Community 1 http://chalf.hkcert21.pwnable.hk:28062/chat/user?id=323079825'sql injection이 터진다. http://chalf.hkcert21.pwnable.hk:28062/chat/user?id=3230%20or%201where 뒤를 true로 만들면 플래그를 얻을 수 있다. FLAG : hkcert21{squirrels-or-1-or-2-or-3-and-you}babyxss 그냥 xss하면 된다. FLAG : hkcert21{zOMG_MY_KEYBOARD_IS_BROKEN_CANNOT_TURN_OFF_CAPSLOCK111111111}babyuxss bot url만 준다. javascript scheme 쓰면 된다...
보호되어 있는 글입니다.
bookmarker payload trading_api payload payload : ||(select%20flag%20from%20flag)|| nodenb race condition create note with random=1 and immediately post /deleteme then access /notes/flag diamondsafe public static function prepare($query, $args){ if (is_null($query)){ return; } if (strpos($query, '%') === false){ error('%s not included in query!'); return; } // get args $args = func_get_args(); ar..
ASCII art as a service jpg파일이 있는 url을 넘겨주면 ascii art로 변환해서 보여주는 사이트다. 코드를 확인해보면 setTimeout(()=>{ try{ const output = childProcess.execFileSync("timeout",["2","jp2a",...url]) fs.writeFileSync(outputFileName,output.toString()) fs.writeFileSync(reqFileName,[reqToken,req.session.id,outputFileName].join('|')) } catch(e){ fs.writeFileSync(reqFileName,[reqToken,req.session.id,"Something bad happened!"]..