rusgram: не публиковать внутренние узлы наружу (ОТКАТЫВАЕТСЯ ОТДЕЛЬНО)

V4/V5: docker-compose публиковал наружу все пять узлов. database на :38002 —
это key-value store вообще без аутентификации: GET /users/<кто угодно>/msg
отдаёт флаг, GET .../password отдаёт пароль, POST перезаписывает любое поле.
content на :38004 рендерит файл юзера уже без требования .html в пути.
Имена жертв берутся из комментариев к картинкам там же.

38001-38004 привязаны к 127.0.0.1: наружу торчит только proxy на 38000.
Между собой контейнеры ходят по docker-сети (database:5002), публикация портов
на это не влияет — функциональность сохраняется полностью. Проверено с внешнего
IP: весь флоу чекера проходит через один 38000, сплойт собирает 0 флагов и не
может даже перечислить пользователей.

ДОПУЩЕНИЕ: чекер ходит только в proxy. Из исходников это не доказать —
свериться с Pacmate/Firegex на vulnbox и последить за первым раундом проверок.
Коммит отдельный именно поэтому: откат этого изменения не тронет патчи кода,
которые безопасны наверняка. Откат — вернуть "38002:5002" нужному узлу.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NN8sHQuGbTBLGGkJyfxzXr
This commit is contained in:
2026-08-26 11:31:28 +03:00
co-authored by Claude Opus 5
parent 14b5855b86
commit 47c546093f
+4 -4
View File
@@ -11,7 +11,7 @@ services:
image: git.itqdev.xyz/4x10m/rusgram-static:${IMAGE_TAG:-latest} image: git.itqdev.xyz/4x10m/rusgram-static:${IMAGE_TAG:-latest}
restart: unless-stopped restart: unless-stopped
ports: ports:
- "38001:5001" - "127.0.0.1:38001:5001"
volumes: volumes:
- "./website:/app/files" - "./website:/app/files"
@@ -20,7 +20,7 @@ services:
image: git.itqdev.xyz/4x10m/rusgram-database:${IMAGE_TAG:-latest} image: git.itqdev.xyz/4x10m/rusgram-database:${IMAGE_TAG:-latest}
restart: unless-stopped restart: unless-stopped
ports: ports:
- "38002:5002" - "127.0.0.1:38002:5002"
volumes: volumes:
- "./website:/app/files" - "./website:/app/files"
@@ -29,13 +29,13 @@ services:
image: git.itqdev.xyz/4x10m/rusgram-logic:${IMAGE_TAG:-latest} image: git.itqdev.xyz/4x10m/rusgram-logic:${IMAGE_TAG:-latest}
restart: unless-stopped restart: unless-stopped
ports: ports:
- "38003:5003" - "127.0.0.1:38003:5003"
content: content:
build: ./content build: ./content
image: git.itqdev.xyz/4x10m/rusgram-content:${IMAGE_TAG:-latest} image: git.itqdev.xyz/4x10m/rusgram-content:${IMAGE_TAG:-latest}
restart: unless-stopped restart: unless-stopped
ports: ports:
- "38004:5004" - "127.0.0.1:38004:5004"
volumes: volumes:
- "./website:/app/files" - "./website:/app/files"