# Rusgram — что запатчено Оригинал (для диффа): `services_vulnerable/rusgram` Пропатчено: `services/rusgram` ```bash diff -ru services_vulnerable/rusgram services/rusgram ``` Проверено на живом стенде: легальный флоу чекера проходит полностью, `sploits/rusgram_sploit.py` против пропатченного сервиса собирает **0 флагов** и не может даже перечислить пользователей. --- ## Изменения по файлам ### `content/content.py` — закрывает V1 (RCE) и V5 * **Белый список шаблонов.** `render_template(path)` теперь вызывается только для `index.html`, `login.html`, `register.html`, `specific.html`. Всё остальное — 404. Это корень SSTI: `template_folder='files'` совпадает с каталогом БД, поэтому файл пользователя рендерился как исходник Jinja-шаблона. * `get_login()` вынесен из тела вьюхи и больше не падает: нет куки, кука кривого формата, юзера не существует, database недоступен — всё возвращает `None`. * `specific.html`: `img` приводится к `int` и проверяется на диапазон 1–16. Побочно чинит незакавыченную подстановку `{{img['id']}}` внутрь `