From 47c546093fe8d960f3d05b48146be6f5adf2b077 Mon Sep 17 00:00:00 2001 From: dmeetrogon Date: Wed, 26 Aug 2026 11:28:18 +0300 Subject: [PATCH] =?UTF-8?q?rusgram:=20=D0=BD=D0=B5=20=D0=BF=D1=83=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=B2=D0=BD?= =?UTF-8?q?=D1=83=D1=82=D1=80=D0=B5=D0=BD=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B7?= =?UTF-8?q?=D0=BB=D1=8B=20=D0=BD=D0=B0=D1=80=D1=83=D0=B6=D1=83=20(=D0=9E?= =?UTF-8?q?=D0=A2=D0=9A=D0=90=D0=A2=D0=AB=D0=92=D0=90=D0=95=D0=A2=D0=A1?= =?UTF-8?q?=D0=AF=20=D0=9E=D0=A2=D0=94=D0=95=D0=9B=D0=AC=D0=9D=D0=9E)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Claude-Session: https://claude.ai/code/session_01NN8sHQuGbTBLGGkJyfxzXr --- services/rusgram/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/rusgram/docker-compose.yml b/services/rusgram/docker-compose.yml index 970f3db..2744d9f 100644 --- a/services/rusgram/docker-compose.yml +++ b/services/rusgram/docker-compose.yml @@ -11,7 +11,7 @@ services: image: git.itqdev.xyz/4x10m/rusgram-static:${IMAGE_TAG:-latest} restart: unless-stopped ports: - - "38001:5001" + - "127.0.0.1:38001:5001" volumes: - "./website:/app/files" @@ -20,7 +20,7 @@ services: image: git.itqdev.xyz/4x10m/rusgram-database:${IMAGE_TAG:-latest} restart: unless-stopped ports: - - "38002:5002" + - "127.0.0.1:38002:5002" volumes: - "./website:/app/files" @@ -29,13 +29,13 @@ services: image: git.itqdev.xyz/4x10m/rusgram-logic:${IMAGE_TAG:-latest} restart: unless-stopped ports: - - "38003:5003" + - "127.0.0.1:38003:5003" content: build: ./content image: git.itqdev.xyz/4x10m/rusgram-content:${IMAGE_TAG:-latest} restart: unless-stopped ports: - - "38004:5004" + - "127.0.0.1:38004:5004" volumes: - "./website:/app/files"