[Dreamhack] Curlove2
·
워게임/웹해킹
보호되어 있는 글입니다.
link-shortener
·
CTF Write Up/b01lers CTF
코드 분석더보기main.pyFlask 앱이 시작될 때 설정되는 전역 구성값들이다.app = Flask(__name__)app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///db/links.db"app.config["TOKEN"] = token_hex(64)app.secret_key = token_hex(64)engine = create_engine(app.config["SQLALCHEMY_DATABASE_URI"], echo=False)SessionFactory = sessionmaker(bind=engine)Session = scoped_session(SessionFactory)base_url = getenv("BASE_URL", "http://127.0.0.1:5..
defense-in-depth
·
CTF Write Up/b01lers CTF
코드 분석더보기app.pyBLACKLIST 필터링, EXPLAIN QUERY PLAN 쿼리로 WAF가 걸려있다.@app.route('/info/', methods=['GET'])def get_user_info(name): if len(name) > 100: return jsonify({"Message": "Why the long name? Are you Tung Tung Tung Tung Tung Tung Tung Sahua????"}), 403 try: db = get_db() cursor = db.cursor() except Exception: print(traceback.format_exc()) return jsonify..
Atom Bomb
·
CTF Write Up/b01lers CTF
코드 분석더보기page.html/bomb_impacts 경로로 폭탄 정보를 전달하면 Elixir 서버가 위험도를 계산해 준다.async function check_bomb_danger(bomb) { // convert altitude to an atom bomb.altitude = ":" + bomb.altitude payload = { impact: { bomb: bomb } }; try { const responce = await fetch("/bomb_impacts", { method: "POST", body: JSON.stringify(payload), h..
trouble at the spa
·
CTF Write Up/b01lers CTF
코드 분석더보기main.tsxReact 앱이 시작되는 부분이다. /flag 경로에서 FLAG를 보여주도록 라우터가 설정되어 있다.import { StrictMode } from 'react';import { createRoot } from 'react-dom/client';import { BrowserRouter, Routes, Route } from 'react-router';// Pagesimport App from './App.tsx';import Flag from './Flag.tsx';import './index.css';createRoot(document.getElementById('root')!).render( } /> ..
when
·
CTF Write Up/b01lers CTF
코드 분석더보기app.tsExpress 앱에 limiter라는 전역 미들웨어가 등록되어 있다. 60초에 60번까지만 /gamble 요청이 가능하다.const limiter = rateLimit({ windowMs: 60 * 1000, limit: 60, // 60 per minute standardHeaders: 'draft-7', legacyHeaders: false, skip: (req, res) => { return req.path != "/gamble" }})const app = express()app.use(limiter)app.use(express.static(path.join(__dirname, 'static'))) 클라이언트가 보낸 date 헤더 값을 초 단위 tim..
[Dreamhack] cURL-Based Call
·
워게임/웹해킹
보호되어 있는 글입니다.
[Dreamhack] Make 01
·
카테고리 없음
보호되어 있는 글입니다.
[Dreamhack] Invitation
·
워게임/웹해킹
보호되어 있는 글입니다.
PHAR Deserialization Vulnerability
·
보안/웹
PHAR(PHP Archive) 구조PHAR 파일은 4가지의 구조로 이루어져있다. Stub작은 형태의 코드를 담을 수 있는 공간__HALT_COMPILER(); 코드가 있어야 PHAR 파일로 인식Stub을 지정하지 않으면 약 7KB 코드가 기본값으로 설정됨 Manifest해당 PHAR 내부 파일에 대한 메타데이터 저장setMeta(mixed $metadata) 함수를 통해 설정 가능 File ContentsPHAR 내 데이터 영역 Signature(Optional)PHAR에 대한 시그니처 그 중 PHAR Manifest의 각 파일에는 다음 정보가 포함되어 있으며 마지막 바이트 부분에서 직렬화 포맷을 사용하고 있다. 따라서, 공격자는 Manifest의 serialize 영역에 의도적인 PHP 객체 페이로드..