TGViewer
Что-то на пентестерском Что-то на пентестерском @pntests · 2.78K subscribers
Post #49 1.11K
Обход капчи у веб-приложений построенных на Bitrix ⛈

Однажды я на работе ломал один сайт который был построен на 1с-bitrix
Мне попался один файл с регистрацией и заметив в нем капчу мне стало любопытно, а можно ли ее обойти
Недолго поисследовав как одна устроена и как генерируется - мне удалось ее обойти.
Давайте разберемся как обошел, о чем думал когда исследовал и т.д.

💪Внутреннее устройство капчи
Давайте познакомимся с деталями и устройством капчи
🟢captcha.php - системный файл битрикса, который генерирует капчу и ее SID каждый раз по новой, когда приходит ей GET запрос при подгрузке страницы где капча размещена, далее этот файл обращается к функции GetSID() для того, чтобы получить значение капчи и её SID
🟢SID - дословно расшифровывается как secure id. Он нужен чтобы в html форме на прямую не лежало значение капчи, выглядит он как-то так: 0f7e32b13881c476d4d1f7be9796ed42
после его генерации в html форме появляется ссылка такого вида: /bitrix/tools/captcha.php?captcha_sid=0f7e32b13881c476d4d1f7be9796ed42
перейдя не неё - там лежало значение капчи в виде картинки, которую нужно ввести руками
🟢Условно выглядит это так 0f7e32b13881c476d4d1f7be9796ed42 == we0f
Где 0f7e32b13881c476d4d1f7be9796ed42 - SID
И we0f значение капчи
🟢Также, при регистрации нового пользователя отправляется POST запрос где в параметрах есть значение капчи в виде "f4oK" и ее SID, далее идет проверка капчи

💪Почему начал исследовать?
🟢 Начал я исследовать из-за того, что ранее сгенерированные SID оставались еще долгое время живы и не удалялись системой, это и привлекло мое внимание
и подумал я, а что если проверить на генерацию одного и того же SID, если сгенерируется один и тот-же SID что и ранее, то можно без проблем ввести значение капчи и ее обойти и начал это реализовывать
мой коллега помог написать скрипт на python чтобы отправлялся get запрос на ловлю старого sid, за что большое спасибо, но через get запрос не сработало к сожалению, тогда я попробовал написать через post запрос

💪Обход капчи
⬜️ Отправляем post запрос на регистрацию нового юзера через python
⬜️ Отправляем его до тех пор, пока не попадется старый sid
⬜️ Если попался старый сид, то зарегистрируется новый юзер и выведет "ok"

🟢 Весь эксплойт выглядит так:
https://pastebin.com/DiZXUkWW
🟢И в результате это сработало, скрипт мне выдал любимый "ok" и чтобы проверить не ошибка ли это, я пошел авторизироваться с пользователем зарегистрированным через обход капчи, и сработало

💪Импакт и завершение
Таким образом можно сгенерировать к примеру 10 таких SID введя значение и ждать когда скрипт задетектит старые и зарегает пользователя
Импакт от этого - возможность забить место в базе данных

ЧТНП | #исследования #web
  • 👍 2
  • 🔥 2
  • ❤ 1
More from @pntests
  1. Dec 31, 2025С новым годом 🎉🎊🎆🍾🎄🎁
  2. Aug 10, 2025James Kettle дропнул свой ресерч про новые классы атак через HTTP Request Smuggling и, к м…
  3. Jul 14, 2025🛡 Application Attack Matrix — созданная сообществом MITRE-подобная матрица тактик, техник…
  4. Jun 18, 2025Успейте подать заявку на Pentest Award 2025 до 30 июня! Это отраслевая награда для специал…
  5. Jun 8, 2025Post #191
  6. Jun 8, 2025⛈Небезопасная генерация токена Что может быть проще: сброс пароля, подтверждение почты или…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →