Isaac-theori/Vulnerable-MCP-server
3.1
If you are the rightful owner of Vulnerable-MCP-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This document provides a comprehensive overview of a Model Context Protocol (MCP) server built using Smithery, detailing its features, tools, resources, and usage across different platforms.
🚨 취약한 MCP 서버 - 보안 교육용 데모
⚠️ 경고: 이 서버는 교육 목적으로만 설계되었으며, 실제 운영 환경에서는 절대 사용하지 마세요!
개요
이 프로젝트는 MCP (Model Context Protocol) 서버의 일반적인 보안 취약점들을 시연하고, 안전한 개발 방법을 교육하기 위해 설계되었습니다.
포함된 취약점들
- 명령어 주입 (Command Injection) -
execute_system_command - 경로 순회 공격 (Path Traversal) -
read_file_content,write_file_content - 비직렬화 공격 (Deserialization) -
process_pickled_data - SQL 인젝션 -
search_user_database - 민감한 정보 노출 -
get_system_info - 서비스 거부 공격 (DoS) -
generate_large_data - 임시 파일 보안 -
create_temp_file - LDAP 인젝션 -
ldap_search_simulation - XML 외부 엔티티 (XXE) -
parse_xml_unsafe
설치 및 실행
1. 의존성 설치
# uv 사용 (권장)
uv sync
# 또는 pip 사용
pip install -e .
2. 서버 실행
# 개발 모드로 실행
uv run dev
# 또는 실행 스크립트 사용
python run_server.py
3. 대화형 테스트
# 대화형 플레이그라운드
uv run playground
취약점 테스트
취약점을 안전하게 테스트해보려면:
# 취약점 테스트 스크립트 실행
python test_vulnerabilities.py
교육 자료
- - 상세한 취약점 설명과 공격 시나리오
- - 취약점 테스트 스크립트
- - 취약한 서버 구현
학습 목표
이 프로젝트를 통해 다음을 학습할 수 있습니다:
- 일반적인 웹 애플리케이션 취약점들이 MCP 서버에서 어떻게 나타나는지
- 각 취약점의 공격 벡터와 영향도
- 안전한 코딩 방법과 방어 기법
- 보안 테스트 및 감사 방법
실습 과제
- 취약점 분석: 각 도구의 취약점을 식별하고 공격 시나리오를 작성하세요
- 안전한 구현: 취약한 기능들의 안전한 버전을 구현해보세요
- 보안 테스트: 구현한 안전한 버전을 테스트해보세요
- 가이드라인 작성: 조직의 MCP 서버 보안 가이드라인을 작성해보세요
보안 원칙
MCP 서버 개발 시 다음 원칙을 따르세요:
- 최소 권한 원칙: 필요한 최소한의 권한만 부여
- 입력 검증: 모든 사용자 입력을 검증하고 새니타이즈
- 샌드박스 사용: 격리된 환경에서 실행
- 정기적인 보안 감사: 코드와 설정을 정기적으로 검토
- 보안 업데이트: 의존성을 최신 상태로 유지
경고 및 면책 조항
⚠️ 이 프로젝트는 오직 교육 목적으로만 설계되었습니다.
- 실제 운영 환경에서는 절대 사용하지 마세요
- 무단으로 타인의 시스템에 대해 테스트하지 마세요
- 취약점을 악용하여 불법적인 행위를 하지 마세요
- 사용자는 이 코드의 사용에 대한 모든 책임을 집니다
라이센스
이 프로젝트는 교육 목적으로만 제공됩니다. 상업적 사용을 금지합니다.