Journey to Security 132

DVWA 문제풀이: Command Injection

1. Command Injection 개념Command Injection은 사용자 입력값이 서버 측 OS 명령어 실행 함수(shell_exec, system, exec 등)에 그대로 전달될 때 발생하는 취약점이다.공격자는 ;, &&, | 같은 명령어 구분자(separator)를 이용해 의도하지 않은 명령어를 추가 실행시킨다. 구분자 동작 방식 ;앞 명령 결과와 무관하게 순차 실행&&앞 명령이 성공해야 뒤 명령 실행||앞 명령이 실패해야 뒤 명령 실행|앞 명령의 출력을 뒤 명령의 입력으로 전달 🔵 DVWA 실습 조건 : ping 기능 DVWA의 Command Injection 실습 화면을 보면 단순한 입력창 하나만 있다.IP 주소를 입력하면 서버가 해당 IP로 ping을 실행하고 결과를 브라우저에 출..

DVWA 문제풀이: Netcat을 이용한 Reverse Shell 공격

1. Reverse Shell이란?일반적인 원격 접속(Normal Shell)은 공격자가 피해 서버에 접속을 시도하는 방향이다.반면 Reverse Shell은 방향이 반대다.피해 서버가 공격자 쪽으로 먼저 연결을 맺는다. 이 방향 역전이 중요한 이유는 방화벽 정책 때문이다.대부분의 서버는 외부에서 들어오는 연결(Inbound)을 엄격하게 차단하지만, 서버가 외부로 나가는 연결(Outbound)은 상대적으로 허용하는 경우가 많다. Reverse Shell은 이 비대칭성을 이용한다. 2. Reverse Shell 실습Step 1️⃣ 공격자 PC(kali)에서 리스너 열기nc는 Netcat의 줄임말로, TCP/UDP 연결을 자유롭게 열고 닫을 수 있는 네트워크 유틸리티다.stdin/stdout을 네트워크 소켓..

DVWA 애플리케이션으로 웹 취약점 실습하기

1. DVWA란?DVWA(Damn Vulnerable Web Application)는 의도적으로 취약하게 설계된 PHP/MySQL 기반 웹 애플리케이션이다.합법적이고 통제된 환경에서 공격 기법과 도구를 테스트할 수 있도록 만들어졌으며, 보안 교육 플랫폼으로 활용된다.핵심 특징은 다음과 같다.Low / Medium / High / Impossible 4단계 난이도 제공SQL Injection, XSS, CSRF, Command Injection 등 주요 웹 취약점 포함각 레벨의 소스코드를 직접 비교할 수 있는 "View Source / Compare All Levels" 기능2. 환경 구성 docker run -d -p 80:80 vulnerables/web-dvwa *현재 서버에서 80번 포트가 사용중이..

[SQLi] 취약한 웹앱 공격 실습 (2) UNION-based 데이터 탈취

📌실습 목표 : 상품 검색 폼에 UNION SELECT를 삽입해 users 테이블의 계정 정보(username, password)를 검색 결과 화면에 그대로 출력시킨다. 1. 취약한 코드search_vuln.php 의 핵심 부분이다.$keyword = $_GET['keyword'];$query = "SELECT id, name, price, description FROM products WHERE name LIKE '%$keyword%'"; products 테이블에서 4개 컬럼을 SELECT하고 있다.이 구조가 UNION 공격의 핵심 단서다. 2. UNION 공격 원리 3. 단계별 공격 실습 http://192.168.100.25:8080/vuln/search_vuln.php 접속 후 keyword ..

보안이슈#4. Nginx 메모리 취약점

최근 국내 정보보안 전문 매체 보안뉴스와 The Hacker News 는 전 세계 웹 서버 시장의 핵심 소프트웨어인 NGINX에서 복수의 취약점이 공개됐다고 보도했다.이 취약점은 단순한 보안 패치 권고 이상의 의미를 가진다. 전 세계 웹 서버 시장의 핵심 소프트웨어인 NGINX에서 무려 18년간 발견되지 않은 취약점이 공개된 직후, 실제 공격에 악용되기 시작했기 때문이다. F5 내부 연구팀 depthfirst가 발견한 두 취약점은 NGINX Plus와 NGINX Open Source 모두에 영향을 미치며, 조건에 따라 원격 코드 실행(RCE)까지 이어질 수 있다. 특히 CVE-2026-42945는 공개 시점 기준 CVSS 9.2점(Critical)으로 평가됐고, 취약한 코드가 2008년에 처음 도입된 것..

[SQLi] 취약한 웹앱 공격 실습 (1) 로그인 우회

📌실습 목표 : 취약한 로그인 폼에 SQL 페이로드를 삽입해 비밀번호 없이 임의 계정으로 로그인한다.1. 취약한 코드login_vuln.php 의 핵심 부분이다.$username = $_POST['username'];$password = $_POST['password'];$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; 로그인 페이지에서 사용자가 입력하는 값이 쿼리 문자열에 그대로 붙어버린다. 여기서 공격이 시작된다. 2. 공격 원리 3. 페이로드 3종 실습브라우저에서 http://192.168.100.25:8080/vuln/login_vuln.php 로 접속하고 아래 페이로드를 순서대로 입력해..

[SQLi] 취약한 실습용 웹 애플리케이션 만들기 (Claude AI 이용)

SQL 인젝션 실습을 위해 Claude AI를 이용해서 다음과 같이 전체 실습 환경을 구성했다.Windows 10/11 (호스트)└── VMware Workstation └── Rocky Linux 9 (192.168.100.25) └── Docker Engine └── sqli_net (bridge network) ├── sqli_web (PHP 8.2 + Apache 2.4) :8080 └── sqli_db (MySQL 8.0) :3306 내부전용1. 하이퍼바이저 — VMware Workstation보안 실습의 첫 번째 원칙은 격리다.아무리 실습용이라도 취약한 코드를 실서버나 로컬 머신에..

Burp Suite와 FoxyProxy를 활용해서 Request/Response 가로채기

웹 애플리케이션 보안 점검의 가장 기본은 클라이언트와 서버 사이에 오가는 데이터를 확인하고 제어하는 것이다.이를 위해 필수적으로 사용되는 프록시(Proxy)의 개념을 정리하고, 대표적인 도구인 Burp Suite와 FoxyProxy를 이용해 실습 환경을 구축해본다. 1. 프록시(Proxy)란 무엇인가?프록시는 사전적 의미로 '대리' 또는 '대행'을 뜻한다.네트워크 환경에서 프록시 서버는 클라이언트(브라우저)와 서버 사이에서 중계자 역할을 수행한다.보안 점검에서는 이 프록시가 일종의 '검문소'가 된다.클라이언트가 보내는 Request(요청)와 서버가 되돌려주는 Response(응답)를 중간에서 가로채(Intercept), 데이터의 내용을 분석하거나 값을 변조하여 보안 취약점을 테스트할 수 있게 해준다. 2..

서브넷 마스크의 트래픽 관리 및 제어 역할

서브넷 마스크는 트래픽 관리 및 제어의 가장 기초적인 도구다.단순히 네트워크를 나누는 차원이 아니라, 실제 트래픽의 흐름을 물리적·논리적으로 규정할 수 있는 기법이다.서브넷에 대한 개념 설명과 서브넷 마스크 계산법은 아래 포스팅에 자세히 정리되어 있다.https://nanujahope.tistory.com/118 이번에는 서브넷 마스크가 어떻게 트래픽을 제어하는지 3가지 포인트로 알아본다.1. 로컬(Local)과 리모트(Remote)의 판별 기준컴퓨터가 데이터를 보낼 때, 목적지가 "우리 동네(Local)"인지 "옆 동네(Remote)"인지 판단하는 유일한 기준이 바로 서브넷 마스크다.동작 원리: 출발지 IP와 목적지 IP를 각각 자신의 서브넷 마스크와 AND 연산한다.결과:값이 같으면 로컬 트래픽: 게..