# 11 класс (Деревенская подработка)
# Решение
Зайти в докер по ssh, в папке /app/proxy найти исходный код веб-приложения - `app.py`.Заметить две уязвимости в сервисе - Weak secret ; JWT alg:none, написать исправление в выделеном куске кода и `.env`.
## Пример идеального исправления
В Python коде добавить проверку по уже заданому алгоритму JWT, в .env (либо в питоне) файле сделать длину ключа 32 символа.
```python
# /app/proxy/app.py
def load_jwt_secret() -> str:
    env_path = "/app/proxy/.env"
    try:
        with open(env_path, "r", encoding="utf-8") as env_file:
            for raw_line in env_file:
                line = raw_line.strip()
                if not line or line.startswith("#") or "=" not in line:
                    continue
                key, value = line.split("=", 1)
                if key.strip() == "JWT_SECRET" and value.strip():
                    return value.strip()
    except OSError:
        pass

    secret = os.environ.get("JWT_SECRET")
    if not secret:
        raise RuntimeError("JWT_SECRET is not set")
    return secret

def verify_token(token: str):
    try:
        return jwt.decode(token, JWT_SECRET, algorithms=[JWT_ALG])
    except Exception:
        return None
```
```bash
#/app/proxy.env
JWT_SECRET= aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
# len(JWT_SECRET) = 32 
```
После исправления уязвимости перезагрузить веб-сервис, есть alias - `restart_proxy`
Чекер выдает флаг: `http://localhost:9090/get_flag`, который виден на главной странице.
## флаг
`vsosh{3m3r4ld_t0k3n}`