“웹 취약점 마스터”는 안전하지 않은 입력 처리가 어떻게 악용 가능한 웹 애플리케이션 결함으로 이어지는지 배우는 초급 가이드형 코스입니다. 8개 실습 랩에서 의도적으로 취약한 PHP 애플리케이션을 Docker로 실행하고, 동작과 소스 코드 일부를 조사한 뒤 Firefox 또는 터미널에서 테스트합니다.
데이터베이스 쿼리에 대한 SQL 인젝션, 로컬 및 원격 파일 포함, 반사형 크로스 사이트 스크립팅, 안전하지 않은 파일 업로드, 운영체제 명령 주입, PHP 코드 인젝션이라는 서로 다른 공격 경로를 다룹니다. 각 실습은 취약한 코딩 패턴을 인증 우회, 데이터 추출, 스크립트 실행, 파일 접근, 웹 셸과 같은 관찰 가능한 결과에 연결합니다.
학습 내용
이 코스를 완료하면 다음을 수행할 수 있습니다.
- Docker로 의도적으로 취약한 애플리케이션을 시작하고 Firefox, URL 매개변수, 양식, Hackbar를 통해 상호작용하기
- 오류와 참·거짓 조건 테스트로 SQL 인젝션을 탐지하고 숫자형과 문자열 컨텍스트를 구분하며 쿼리 열 개수 확인하기
UNION SELECT와information_schema를 사용해 MySQL 데이터베이스 구조를 파악하고 데이터를 추출하며 안전하지 않은 로그인 쿼리 우회하기- 정적 PHP 파일 포함과 사용자 제어 파일 포함을 구분하고 통제된 페이로드로 로컬 또는 원격 포함 확인하기
- 반사형 XSS 페이로드를 만들고 다른 요소와 이벤트 핸들러 형태로 단순한 대소문자 구분 필터 우회하기
- 파일 업로드 검증을 조사하고 PHP 테스트 페이지나 명령 셸을 업로드하며 선택적으로 확장자 기반 우회 탐색하기
- 운영체제 명령에 전달되는 안전하지 않은 입력을 악용해 추가 명령을 실행하고 랩 내부에서만 리버스 셸 연결하기
- PHP
eval()에 전달되는 문자열을 벗어나 함수를 호출하고 서버 파일을 읽거나 새 파일을 쓰며 간단한 웹 셸 만들기
추천 대상
이 코스는 취약한 PHP 코드와 실제로 동작하는 개념 증명 페이로드를 가이드형 실습으로 연결하고 싶은 웹 보안 테스터 지망생, 개발자, CTF 학습자, 사이버 보안 입문자에게 적합합니다. 완전한 인터셉팅 프록시 워크플로로 넘어가기 전에 브라우저 실험과 URL 직접 수정부터 시작하려는 경우 좋은 선택입니다.
선수 지식: 기본적인 Linux 터미널 사용 능력과 URL, 쿼리 매개변수, HTML 양식, 간단한 웹 요청에 대한 이해를 권장합니다. PHP와 SQL 기초를 알고 있으면 소스 코드 설명을 더 쉽게 따라갈 수 있지만, 랩에서 관련 구문이 나올 때 설명합니다.
학습 환경: 랩은 Firefox, 터미널, Docker, 로컬 취약 웹 애플리케이션, 제공된 Hackbar 확장 파일이 포함된 격리된 LabEx 그래픽 Linux 환경을 사용합니다. 여러 실습에서 공개 Docker 이미지를 가져오며, 원격 파일 포함 데모 하나는 공개 PentesterLab 페이로드를 요청합니다. 코스에서 제3자 계정은 요구하지 않습니다.
자주 묻는 질문
Burp Suite나 다른 인터셉팅 프록시가 필요한가요?
아닙니다. 실습은 Firefox, URL 및 양식 직접 입력, 브라우저 개발자 도구, Hackbar, 터미널 명령을 사용합니다. Burp Suite로 원시 HTTP 트래픽을 가로채고 수정하는 과정은 이 코스에 포함되지 않습니다.
모든 취약 애플리케이션이 로컬에서 호스팅되나요?
애플리케이션 자체는 랩 내부의 로컬 Docker 컨테이너에서 실행됩니다. 설정 명령은 컨테이너 레지스트리에서 공개 이미지를 가져오며, 원격 파일 포함 실습은 공개 호스팅된 데모 페이로드를 불러오므로 해당 수업은 완전한 오프라인 방식이 아닙니다.
여기서 명령 주입과 코드 인젝션은 어떻게 다른가요?
명령 주입 랩은 신뢰할 수 없는 입력을 시스템 명령에 넣어 추가 운영체제 명령이 실행되는 과정을 보여 줍니다. 코드 인젝션 랩은 입력을 eval()에 전달되는 PHP 문자열에 넣어 주입된 PHP 함수가 파일을 읽거나 쓰고 웹 셸을 만들도록 합니다.
모든 취약점을 수정하는 방법도 배우나요?
안전하지 않은 패턴을 설명하고 확장자, MIME 유형, 크기 검증과 같은 확인 방법을 소개하지만, 실습은 주로 취약점 활용에 초점을 둡니다. 안전한 쿼리 매개변수화, 체계적인 출력 인코딩, 운영 환경용 업로드 아키텍처, 완전한 수정 검증은 추가 학습이 필요합니다.




