전체 글
-
NAT Hairpin과 HTTP-01 / DNS-01Infra 2026. 8. 15. 21:01
오늘 원래 AWS EC2에 올라가있던 내 개인사이트를 어제 설치한 홈서버로 이전하는 작업을 했다.금방 끝날줄 알았는데 생각보다 오래 걸렸고, 오늘 겪었던 문제를 하나 공유한다. 우선 문제는 인증서를 발급 받을 때 일어났는데, k8s에서 tls 인증서 발급이 오래 걸리더니 timeout을 뱉었다.원인은 집 공유기가 NAT Loopback을 지원하지 않아서였다. SSL 인증서를 발급받으려면 Challenge라는 것을 통과해야한다. challenge를 수행하는 서버의 주인이 실제로 해당 도메인의 주인과 일치하는지를 체크하기 위한 과정인데, 나는 k8s 환경이기 때문에 보통 cert-manager가 이걸 대신 해준다. 기본적으로 HTTP-01로 챌린지를 많이 진행을 하는데, 인증서를 발급해줄 CA가 주는 임의의..
-
k8s + argocd + vault 구축기Infra 2026. 8. 15. 05:24
Ubuntu 서버에 Kubernetes + Argo CD + Vault 구축한 과정 정리AWS에 서비스를 몇가지 올렸는데, 일단 너무 느리고, 돈도 아까워서 집에 굴러다니는 deskmini x300을 홈서버로 쓰기로 했다. 전기세는 내가 내는게 아니니까 (...)그래서 내가 속한 단체에서 하듯이 k8s와 Argocd, Vault를 설치해서 gitops 하기 편한 환경을 만들기로 했다. codex의 도움으로 좀 빨리 끝났긴 했는데, 중간에 시행착오도 있었어서 전체적인 과정을 정리해서 올린다. 물론 내가 정리한게 아니고 codex가 정리해준거다. 아래 내용 전부 다 codex가 쓴거니 오해 없길 바란다. 오늘은 Ubuntu 서버 한 대를 기준으로 Kubernetes를 설치하고, Cilium, Arg..
-
[Dreamhack] Mango - silver4Security/Web Hacking 2026. 8. 14. 16:40
https://dreamhack.io/wargame/challenges/90 로그인 | Dreamhack dreamhack.io flag가 db에 있다고 한다. sqli 문제이다.근데 코드를 뜯어보면 mongodb를 쓰고 있다. nosqli 문제이다. db.collection('user').findOne({ 'uid': uid, 'upw': upw, } 음 전혀 모르겠다대충 mongoose 문법을 보니, uid 자리에 { $regex : 'admi' } 이런식으로 넣으면 admi가 들어가는 값을 찾는 것인데, url paramter에 어떻게 값을 넣어야 uid를 object 형태로 만들지를 모르겠다. 그래서 검색했고, 찾은 답은 간단한데, param 이름에 []를 붙이면 o..
-
[Dreamhack] xss-1 - bronze2Security/Web Hacking 2026. 8. 14. 15:06
https://dreamhack.io/wargame/challenges/28 로그인 | Dreamhack dreamhack.io XSS 문제이다. 각 라우터를 살펴보면, "/" : index 페이지 렌더"/vuln" : param이라는 파라미터를 받아서 그대로 반환"/flag" : GET 요청 시 flag.html 렌더 (플래그 있는 페이지 아님) POST 요청 시 form에서 param 값을 받은 후, check_xss 함수에 FLAG와 함께 넘겨 리턴값이 FALSE이면 "wrong"이라는 알람을 띄우며 사용자를 뒤로가기 시킴. TRUE면 "good"이라는 메세지와 함께 뒤로보냄"/memo" : memo 파라미터를 memo_text라는 글로벌 변수에 붙인 후 렌더 check_xss ..
-
[Dreamhack] off_by_one_001 - sprout카테고리 없음 2026. 8. 12. 00:42
https://dreamhack.io/wargame/challenges/10 로그인 | Dreamhack dreamhack.io 포너블 문제는 처음 풀어보는데, 정보보호개론 강의에서 실습했던 내용과 다소 비슷해보였다.다만 내용이 기억이 잘 안나서 환경에 대해 먼저 분석해봤다. Ubuntu 16.04 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) 여기서 Partial RELRO에 대해 Gemini는 다음과 같이 설명한다.Partial RELRO(Partial Relocation Read-Only)는 리눅스 바이너리의 메모리 보호 기..
-
[Leetcode] Add Two NumbersEtc./algorithm 2026. 8. 11. 23:45
https://leetcode.com/problems/add-two-numbers/ Add Two Numbers - LeetCodeCan you solve this real interview question? Add Two Numbers - You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers andleetcode.com이 문제는 두 양의 정수를 더해서 값을 구하는 문제이다. 이 때, 두 양의 정수를 일의 자리부터 링크드 ..
-
[Dreamhack] cookie - sproutSecurity/Web Hacking 2026. 8. 11. 11:23
https://dreamhack.io/wargame/challenges/6 로그인 | Dreamhack dreamhack.iosprout level의 몹시 쉬운 문제이다.app.py는 아래와 같다.#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forapp = Flask(__name__)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'users = { 'guest': 'guest', 'admin': FLAG}@app.route('/')def index(): username = r..
-
[Leetcode] Two SumEtc./algorithm 2026. 8. 11. 11:12
https://leetcode.com/problems/two-sum/description/ 정수가 들어있는 1차원 배열에서 합이 target 정수가 되는 두 요소의 index를 배열로 반환하는 문제이다. 가장 처음에 쉽게 떠올릴 수 있는 방법은, 2중 for문으로 가능한 조합을 brute force로 찾아내는 방법이다.class Solution {public: vector twoSum(vector& nums, int target) { for(int i = 0; i 물론 쉽긴 한데, 런타임 42ms로 상위 75% 정도가 나왔다.물론 저장하는 정보가 없어서 메모리는 상위 28% 정도가 나왔다. 다음은 힌트를 읽고 떠올린 방법이다.힌트는 map과 같은 자료구조를 사용해볼 것을 권하고 있었다...