전체 글
-
[Java] Thread에 대해 알아보자JAVA 2025. 6. 26. 18:29
Java에서 Thread는 어플리케이션에서 실행되는 가장 작은 단위의 작업 흐름을 의미합니다.하나의 Process는 N개의 Thread를 가질 수 있으며 N개의 Thread가 동시에 실행되는 환경을 Multi-Thread라고 합니다.Java는 대표적인 Multi-Thread 환경이며 여러 작업을 병렬 처리하여 자원을 효율적으로 사용할 수 있는 장점이 있지만 동기화 문제와 교착 (Dead Lock) 상태 같은 문제들을 발생 할 수 있습니다.Thread 종류Java Thread는 크게 동작 방식과 역할에 따라 2가지로 분류할 수있습니다.1. User Thread백그라운드에서 동작하며 주요 로직을 수행하는 스레드를 의미합니다.JVM은 모든 User Thread가 종료될 때까지 기다렸다가 종료됩니다.하나라도 남..
-
[웹 보안의 기초 정리] Cookie, SameSite, CORS, ACAOHacking/개념 및 이론 2025. 6. 23. 18:18
🍪 Cookie는 어디에 저장되고, 어떻게 동작할까?브라우저는 서버로부터 받은 Cookie를 도메인 + 경로(Path) 기준으로 저장해요.예를 들어 www.test.com 서버가 /user/profile 주소로 응답하면서 Path=/user/로 설정된 쿠키를 보냈다면 해당 쿠키는 www.test.com/user/로 시작하는 모든 요청에 자동으로 포함됩니다.브라우저는 Set-Cookie 응답 헤더를 통해 서버가 보낸 쿠키를 Origin 기반 저장소에 보관합니다.Set-Cookie: token=abc123; Path=/users; HttpOnly; Secure; SameSite=Lax;항목설명Domain해당 쿠키가 유효한 도메인 (기본: 응답한 도메인)PathURL 경로 조건 (기본: 현재 경로 이하)Se..
-
[A03:2021 - Injection] SQL Injection을 이용한 사용자 계정 정보 탈취 - Error Based SQL InjectionHacking/CTF 문제 풀이 2025. 6. 18. 14:20
Error-Based SQL Injection은 SQL 쿼리 실행 중 발생하는 오류 메시지를 기반으로 데이터베이스 구조 및 민감 정보를 탈취하는 공격 기법으로 사용자의 입력값을 검증 없이 쿼리에 포함시킬 경우 발생하는 보안 취약점으로 의도하지 않은 SQL 구문이 실행되어 민감 정보가 유출될 수 있습니다.☑️ 사전 참고SQL Injection에 대한 기본 개념과 다양한 유형이 궁금하다면 아래 글을 먼저 참고하세요. [웹 취약점 실습] SQL Injection을 이용한 사용자 계정 정보 탈취 - Blind SQL Injection, General SQL InjectionSQL Injection은 사용자의 입력값을 검증하지 않고 SQL 쿼리에 그대로 포함시켜 실행되는 보안 취약점으로 의도하지 않은 쿼리를 주입..
-
[Redis] Caching 전략 및 가이드Redis 2025. 6. 18. 02:27
Database는 애플리케이션의 핵심이지만 잦은 데이터 조회는 성능 저하 & 부하를 일으킬 수 있습니다.Cache는 자주 사용하는 데이터를 메모리에 저장하여 Database 조회 비용과 응답 시간을 줄임으로써 위에 있는 문제를 해결하는데 중요한 역할을 합니다.목적 : Cache는 Memory Access이고 Database는 I/O 작업이기 때문에 훨씬 빠르게 조회 가능 및 부하 감소한계 : Cache와 Database 간 불일치 가능성 존재Redis Caching 전략데이터를 어떻게 저장하고 Database와 어떻게 동기화할지에 따라 크게 3가지로 나눠질 수 있습니다.✔️ Cache Aside (Lazy Loading)가장 보편적으로 사용되고 구현하기 쉬운 전략 중 하나입니다.이름처럼 애플리케이션이 캐..
-
[A03:2021 - Injection] SQL Injection을 이용한 사용자 계정 정보 탈취 - Blind SQL Injection, General SQL InjectionHacking/CTF 문제 풀이 2025. 6. 17. 23:10
SQL Injection은 사용자의 입력값을 검증하지 않고 SQL 쿼리에 그대로 포함시켜 실행되는 보안 취약점으로 의도하지 않은 쿼리를 주입(Injection)하여 데이터를 탈취하거나 조작하는 공격입니다.최근에는 다양한 방어 기법과 ORM 기술들이 적용되며 SQL Injection에 대한 대응이 개선되고 있지만 레거시 시스템에서는 여전히 이 취약점이 존재하는 경우가 많습니다.특히 오래된 프로젝트는 구조적으로 보안 업데이트가 어려운 경우가 많아 현실적인 보안 리스크로 여겨지고 있습니다.이러한 이유로 OWASP Top 10에서도 Injection은 가장 심각하고 빈번하게 발생하는 보안 취약점 중 하나로 분류되어 3위(A03:2021)를 차지하고 있습니다.해당 항목에는 SQL Injection뿐 아니라 Cro..
-
[A03:2021 - Injection] Command Injection (Low~High) - PHPHacking/CTF 문제 풀이 2025. 6. 15. 23:42
DVWA(Damn Vulnerable Web Application)는 웹 애플리케이션 보안 실습을 위한 플랫폼입니다.이번 글에서는 Command Injection 취약점 중 Low ~ high 보안 등급에서의 동작을 살펴보고 실제 공격 시나리오와 취약점 원인을 PHP 코드로 분석합니다.Command Injection 이란?사용자 입력값이 서버의 명령어 실행 함수에 그대로 전달되어 임의 명령어를 실행할 수 있게 되는 취약점입니다.공격자는 시스템 명령어를 삽입하여 파일 탐색, 시스템 정보 탈취, 권한 상승 등을 시도할 수 있습니다.🔓 Low 보안 등급{$cmd}";}?>취약점 분석shell_exec() 함수는 인자로 전달된 문자열을 OS 명령어로 실행하고 결과를 반환합니다.사용자 입력값 $_REQUEST[..
-
[Redis] 트랜잭션 이해 : 원자성과 일관성 보장의 기술적 접근Redis 2025. 6. 4. 00:48
Redis Transaction Redis에서도 트랜잭션(Transaction) 개념을 지원합니다.트랜잭션은 여러 개의 명령어를 하나의 묶음으로 실행하는 것처럼 Redis에서 명령합니다.MULTIDECR coupon:summer_sale:stockLPUSH user:1:coupons "summer_sale"EXEC해당 예시를 설명해보겠습니다.MULTI : 트랜젝션 시작DECR, LPUSH 명령어를 Queue에 삽입EXEC : Queue에 삽입한 명령어를 한번에 실행기본 구성Redis 트랜잭션은 다음 세 가지 명령어를 중심으로 이루어집니다.MULTI : 시작EXEC : 순차적으로 실행DISCARD : Queue안에 있는 데이터 모두 제거작동 방식Redis 트랜잭션은 위에서 말했듯이 명령어를 모아뒀다가 EX..