Vulnerable MCP Server
by Isaac-theori
README.md
# π¨ μ·¨μ½ν MCP μλ² - 보μ κ΅μ‘μ© λ°λͺ¨
β οΈ **κ²½κ³ : μ΄ μλ²λ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ€κ³λμμΌλ©°, μ€μ μ΄μ νκ²½μμλ μ λ μ¬μ©νμ§ λ§μΈμ!**
## κ°μ
μ΄ νλ‘μ νΈλ MCP (Model Context Protocol) μλ²μ μΌλ°μ μΈ λ³΄μ μ·¨μ½μ λ€μ μμ°νκ³ , μμ ν κ°λ° λ°©λ²μ κ΅μ‘νκΈ° μν΄ μ€κ³λμμ΅λλ€.
## ν¬ν¨λ μ·¨μ½μ λ€
1. **λͺ
λ Ήμ΄ μ£Όμ
(Command Injection)** - `execute_system_command`
2. **κ²½λ‘ μν 곡격 (Path Traversal)** - `read_file_content`, `write_file_content`
3. **λΉμ§λ ¬ν 곡격 (Deserialization)** - `process_pickled_data`
4. **SQL μΈμ μ
** - `search_user_database`
5. **λ―Όκ°ν μ 보 λ
ΈμΆ** - `get_system_info`
6. **μλΉμ€ κ±°λΆ κ³΅κ²© (DoS)** - `generate_large_data`
7. **μμ νμΌ λ³΄μ** - `create_temp_file`
8. **LDAP μΈμ μ
** - `ldap_search_simulation`
9. **XML μΈλΆ μν°ν° (XXE)** - `parse_xml_unsafe`
## μ€μΉ λ° μ€ν
### 1. μμ‘΄μ± μ€μΉ
```bash
# uv μ¬μ© (κΆμ₯)
uv sync
# λλ pip μ¬μ©
pip install -e .
```
### 2. μλ² μ€ν
```bash
# κ°λ° λͺ¨λλ‘ μ€ν
uv run dev
# λλ μ€ν μ€ν¬λ¦½νΈ μ¬μ©
python run_server.py
```
### 3. λνν ν
μ€νΈ
```bash
# λνν νλ μ΄κ·ΈλΌμ΄λ
uv run playground
```
## μ·¨μ½μ ν
μ€νΈ
μ·¨μ½μ μ μμ νκ² ν
μ€νΈν΄λ³΄λ €λ©΄:
```bash
# μ·¨μ½μ ν
μ€νΈ μ€ν¬λ¦½νΈ μ€ν
python test_vulnerabilities.py
```
## κ΅μ‘ μλ£
- [`SECURITY_DEMO.md`](SECURITY_DEMO.md) - μμΈν μ·¨μ½μ μ€λͺ
κ³Ό 곡격 μλ리μ€
- [`test_vulnerabilities.py`](test_vulnerabilities.py) - μ·¨μ½μ ν
μ€νΈ μ€ν¬λ¦½νΈ
- [`src/character_counter/server.py`](src/character_counter/server.py) - μ·¨μ½ν μλ² κ΅¬ν
## νμ΅ λͺ©ν
μ΄ νλ‘μ νΈλ₯Ό ν΅ν΄ λ€μμ νμ΅ν μ μμ΅λλ€:
1. μΌλ°μ μΈ μΉ μ ν리μΌμ΄μ
μ·¨μ½μ λ€μ΄ MCP μλ²μμ μ΄λ»κ² λνλλμ§
2. κ° μ·¨μ½μ μ 곡격 벑ν°μ μν₯λ
3. μμ ν μ½λ© λ°©λ²κ³Ό λ°©μ΄ κΈ°λ²
4. 보μ ν
μ€νΈ λ° κ°μ¬ λ°©λ²
## μ€μ΅ κ³Όμ
1. **μ·¨μ½μ λΆμ**: κ° λꡬμ μ·¨μ½μ μ μλ³νκ³ κ³΅κ²© μλ리μ€λ₯Ό μμ±νμΈμ
2. **μμ ν ꡬν**: μ·¨μ½ν κΈ°λ₯λ€μ μμ ν λ²μ μ ꡬνν΄λ³΄μΈμ
3. **보μ ν
μ€νΈ**: ꡬνν μμ ν λ²μ μ ν
μ€νΈν΄λ³΄μΈμ
4. **κ°μ΄λλΌμΈ μμ±**: μ‘°μ§μ MCP μλ² λ³΄μ κ°μ΄λλΌμΈμ μμ±ν΄λ³΄μΈμ
## 보μ μμΉ
MCP μλ² κ°λ° μ λ€μ μμΉμ λ°λ₯΄μΈμ:
1. **μ΅μ κΆν μμΉ**: νμν μ΅μνμ κΆνλ§ λΆμ¬
2. **μ
λ ₯ κ²μ¦**: λͺ¨λ μ¬μ©μ μ
λ ₯μ κ²μ¦νκ³ μλνμ΄μ¦
3. **μλλ°μ€ μ¬μ©**: 격리λ νκ²½μμ μ€ν
4. **μ κΈ°μ μΈ λ³΄μ κ°μ¬**: μ½λμ μ€μ μ μ κΈ°μ μΌλ‘ κ²ν
5. **보μ μ
λ°μ΄νΈ**: μμ‘΄μ±μ μ΅μ μνλ‘ μ μ§
## κ²½κ³ λ° λ©΄μ±
μ‘°ν
β οΈ **μ΄ νλ‘μ νΈλ μ€μ§ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ€κ³λμμ΅λλ€.**
- μ€μ μ΄μ νκ²½μμλ μ λ μ¬μ©νμ§ λ§μΈμ
- 무λ¨μΌλ‘ νμΈμ μμ€ν
μ λν΄ ν
μ€νΈνμ§ λ§μΈμ
- μ·¨μ½μ μ μ
μ©νμ¬ λΆλ²μ μΈ νμλ₯Ό νμ§ λ§μΈμ
- μ¬μ©μλ μ΄ μ½λμ μ¬μ©μ λν λͺ¨λ μ±
μμ μ§λλ€
## λΌμ΄μΌμ€
μ΄ νλ‘μ νΈλ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ 곡λ©λλ€. μμ
μ μ¬μ©μ κΈμ§ν©λλ€.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues