분류 전체보기 31

JDK21 설치와 환경 변수 설정

JDK21을 설치하는 방법을 알아보겠습니다.JDK(Java Development Kit)는 java 환경에서 돌아가는 프로그램을 개발하는 데 필요한 툴을 모아놓은 소프트웨어 패키지입니다. 1. JDK21 설치오라클 공식 홈페이지에서 JDK21 설치 파일을 다운로드해야 합니다. 아래 링크에 접속해 자신의 운영체제에 맞는 설치 파일을 선택합니다.더보기컴퓨터 사양 확인하는 법 - window 1. 제어판 > 시스템 및 보안 > 시스템 > 밑으로 스크롤 하면 확인 가능 https://www.oracle.com/java/technologies/downloads/#jdk21-windows Download the Latest Java LTS FreeSubscribe to Java SE and get the most..

Web/기초 2025.10.23

[WAF] WAF(웹 방화벽)이란? Firewall, IPS와 차이, 동작 방식, 유형, 배치

1. WAF(웹 방화벽)이란?웹 방화벽(WAF, Web Application Firewall)은 웹 애플리케이션을 대상으로 한 보안 취약점 공격을 방어하기 위해 설계된 전용 방화벽입니다. 이는 악성 HTTP/HTTPS 트래픽 유입을 필터링하여 공격을 탐지하고 차단하는 역할을 수행합니다. 이러한 직접적인 공격 방어 이외에도 다양한 솔루션으로서 사용 가능합니다. 정보 유출 방지웹 게시판이나 파일 업로드/다운로드를 통해 개인정보가 유출될 가능성이 있는 경우, WAF를 활용하면 해당 트래픽을 모니터링하고 차단하여 민감 정보 노출을 방지할 수 있습니다. 부정 로그인 방지반복적인 로그인 시도나 추측 가능한 비밀번호를 이용한 공격과 같은 비정상적인 접근을 탐지하고, WAF를 통해 접근을 차단함으로써 계정 탈취를 예..

Web/웹해킹 2025.10.23

[WAF] OWASP ZAP 기반 웹 취약점 스캔 & 우회 및 보안 실습

해당 환경은 WAF 실습을 위해 직접 제작했음을 밝힙니다.해당 페이지의 취약점을 분석하기 위해 OWASP ZAP을 활용해 취약점 진단을 실시했습니다. 2025.10.23 - [Web/기초] - OWASP ZAP 설치 및 사용법(Active Scan) OWASP ZAP 설치 및 사용법(Active Scan)OWASP ZAP의 설치 방법과 Acrive Scan을 사용법을 알아보겠습니다. OWASP ZAP(Zed Attack Proxy)은 웹 애플리케이션의 보안 취약점을 찾는 데 사용되는 무료 오픈 소스 웹 애플리케이션 보안 스캐너입니다.1. Oluckyd8.tistory.com 테스트 시행 결과를 살펴보면 WAF를 적용했음에도 취약점이 존재하는 것을 확인할 수 있습니다. 1. Content Securit..

Web/웹해킹 2025.10.23

OWASP ZAP 설치 및 사용법(Active Scan)

OWASP ZAP의 설치 방법과 Acrive Scan을 사용법을 알아보겠습니다. OWASP ZAP(Zed Attack Proxy)은 웹 애플리케이션의 보안 취약점을 찾는 데 사용되는 무료 오픈 소스 웹 애플리케이션 보안 스캐너입니다.1. OWASP ZAP 설치OWASP ZAP 공식 홈페이지에서 자신의 운영체제에 맞는 설치 파일을 다운로드 합니다.ZAP – Download ZAP – Download⚠️ Warning - Browsers may flag the ZAP releases as potentially dangerous. There does not appear to be much we can do about this. For more details see Why does my Antivirus Too..

Web/기초 2025.10.23

BootStrap 부트스트랩 설치 및 적용

부트스트랩 (Bootstrap)부트스트랩은 HTML, CSS, JavaScript로 구성된 프론트엔드 프렘임 워크로, 웹사이트의 디자인과 사용자 인터페이스(UI)를 쉽게 구현할 수 있도록 도와주는 도구입니다. 이미 만들어진 디자인 요소를 가져다 쓰기만 하면 되기 때문에 개발 속도가 빠르며, 별도의 CSS/JS 코딩 없이도 바로 사용 가능합니다. 1. 부트스트랩 설치부트 스트랩을 사용하는 방법은 여러가지가 있지만, 이번 글에서는 다운로드 후 로컬에서 사용하는 방식을 중심으로 진행하겠습니다. https://getbootstrap.com/docs/4.4/getting-started/download/ DownloadDownload Bootstrap to get the compiled CSS and JavaScr..

Web/기초 2025.10.23

[Web] Google Cloud에 Docker 이미지 배포하기

로컬에서 실행하던 php 파일을 Docker로 패키징 후 Google Cloud Platform(GCP) 을 통해 업로드 하는 과정을 정리했다. Google Cloud CLI 설치 및 로그인1. gcloud CLI 설치Google Cloud에 접속하여 Docker 이미지를 업로드하려면, Google Cloud CLI(gcloud CLI)를 사용하여 인증을 받아야 한다. 만약 설치되어 있지 않다면, Google Cloud SDK 다운로드 페이지에서 다운로드하여 설치해야 한다. https://cloud.google.com/sdk/docs/downloads-interactive?hl=ko Google Cloud CLI 설치 프로그램 사용 | Google Cloud SDK Documentation이 페이지는..

Web/기초 2025.09.03

[Web] XSS를 이용한 웹 키로깅 공격 실습

실습은 XSS 취약점을 갖도록 구현한 PHP 페이지에서 진행했다.이번 실습은 XSS 취약점을 가진 게시판에 악성 스크립트를 삽입한 뒤, 다른 사용자가 해당 게시글을 열람했을 때 키로거가 작동해 사용자가 입력한 모든 글자를 공격자 서버로 전송하는 것을 목표로 한다. 사용자의 입력값을 공격자가 직접 열람할 수 있게 함으로써 키 입력 감시 및 탈취 등이 가능하다는 보안 문제를 확인할 수 있다. 1. 공격자 서버공격자 서버는 피해자가 입력한 키보드 입력값을 수집하여 저장하는 역할을 한다. 공격자 서버는 사용자로부터 전송된 키 입력 데이터를받아 strokes.txt 파일에 저장해, 실시간으로 조회 가능하도록 기능한다. xampp 환경에서 PHP를 사용해 공격자 서버를 구현했다. 폴더 구조는 다음과 같다. C..

Web/웹해킹 2025.07.21

[Web] SECGAME 'Onion' write-up

SECGAME 'Onion' 문제를 풀어보았다. http://158.247.215.127:10012/ Onion158.247.215.127:10012 처음 문제에 접속하면 다음과 같은 화면이 뜬다. 먼저 로그인(Login) 기능에서 SQL Injection 공격을 시도했다. 흔히 사용되는 SQL문을 유추해 다음과 같은 공격문을 입력했다.' OR 1=1 # 하지만 아이디와 패스워드를 모두 입력하라는 경고 문구가 출력되었다. 따라서 우선 정상적으로 회원가입을 진행한 뒤, 게시판 기능에서 새로운 SQLi 공격을 시도해 보기로 했다. 회원가입(Register) 기능이 있기 때문에, 회원가입 후 게시판(Board)에 접근했다.게시판은 글 검색 기능이 존재했고, 이 기능 내부에서 실행되는 SQL 쿼리를 유추해 ..

카테고리 없음 2025.07.10

[C언어/멘토링] 멘토링 재시험 오답 정리

문제 1. 월을 입력. 며칠까지 있는지 출력. 단, 2월의 경우 28일까지 존재. 문제를 풀 때 30일까지인 달이 존재한다는 것을 까먹어버렸다...답으로 작성한 코드이다. #include int main() { int m; scanf_s("%d", &m); if (m == 2) { // 달(m)이 2인 경우 printf("28"); // 28을 출력 } else { //그 외에 닫(m)의 경우 printf("31"); // 31을 출력 }}28일인 달은 2월, 31일인 달은 1, 3, 5, 7, 8, 10, 12월, 30일인 달은 4, 6, 8, 9, 11월이다.이를 바탕으로 수정한 코드이다. #include int main() { int m; scanf_s("%d",..

C 언어/멘토링 2025.06.08

[C언어/멘토링] 멘토링 시험 오답 정리

문제 1. A를 입력받고, 윤년인지 아닌지 판별. 윤년이면 1, 아니면 0을 반환4의 배수면 윤년, 100의 배수면 윤년 아님, 400의 배수면 윤년 문제의 핵심은 윤년의 조건을 제대로 구분하는 데에 있다. 윤년은 4의 배수이면서, 100의 배수가 아닐 때 혹은 400의 배수일 때이다. 즉, (4의배수 and 100의 배수) or 400의 배수의 조건을 가진다. 답으로 작성한 코드이다. #includeint main(){ int A; scanf_s("%d", & A); if (A % 4 == 0 || A % 400) { printf("1"); } else if (A % 100 ==0) { printf("0"); }} A가 윤년인 경우 조건을 4의 배수 혹은 400의 배수로 설정했다. 또한 A가 윤년..

C 언어/멘토링 2025.06.08