Немного заметок на полях о Bitrix

Немного заметок на полях о Bitrix

@GigaHack (Oleg Labyntsev)

Всем привет! 

Многие неоднократно слышали о CMS Bitrix — весьма удобная система для управления сайтом. Однако сильно уязвимая из "коробки". Об эксплуатации достаточного количества нюансов и уязвимостей было не раз сказано в комьюнити этичных хакеров.

Сейчас я хочу внести свой скромный вклад и рассказать о замеченных мною недостатках и особенностях в этой CMS.

1) Часто на пентестах доступ к форме авторизации по URL-путям /bitrix/admin или /bitrix/components/bitrix/desktop/admin_settings.php уже прикрыт и приходится искать новые конечные точки. Вот небольшой список конечных точек, которые практически всегда безотказно выдают форму авторизации (помимо тех, которые явно указаны в методичке тут):

/bitrix/tools/seo_page_parser.php
/bitrix/tools/seo_google.php
/bitrix/tools/seo_yandex_direct.php
/bitrix/tools/seo_yandex.php
/bitrix/tools/clock_selector.php
/bitrix/components/bitrix/map.yandex.view/settings/settings.php
/bitrix/components/bitrix/map.google.view/settings/settings.php
/bitrix/components/bitrix/map.google.search/settings/settings.php

2. URL-encode — наше всё. Зачастую обойти ограничения можно с помощью кодирования ключевых слов bitrix и admin (об этом было упомянуто в докладе здесь. Сам доклад рекомендую к просмотру!)

Когда хочется проверить множество конечных точек, а перегонять в URL-encode каждую вручную не хочется — в ход вступает автоматизация. Делать это удобно с помощью burp-а:

Вкладка Proxy -> proxy settings -> ищем внизу Match and replace rules и добавляем два новых правила, которые заменяют вхождения строки "bitrix" на %62%69%74%72%69%78/. (не забываем об /. — это важно) и строки "admin" на %61%64%6d%69%6e 

Cтавим галочку напротив "Regex".

Ниже представлен скриншот из Burp-a.

Автоматический URL-encode вхождений "bitrix" и "admin"

Тему URL-encoding-а я отдельно затронул по следующей причине: хочу поделиться небольшой хитростью с доступом в админку с помощью авторизации Bitrix24 через социальные сети. (техника самого доступа через соц.сети также описана в выступлении здесь)

Здесь нужно учесть, что QRATOR Bitrix 24 при включенной автозамене на URL-encode будет слать ошибку "QRATOR 400 HTTP", и чтобы этого избежать выполняем следующие шаги последовательно:

 а) С помощью вышеописанного URL-encode-а получаем доступ к форме авторизации Bitrix;

 б) Отключаем в burp-е URL-encode и прожимаем авторизацию Bitrix24 -> удобную вам соц.сеть для входа, страница может висеть, для этого достаточно перезагрузиться;

 в) Снова включаем URL-encode и шаримся в админке, будучи авторизованным


3. Интересный эндпоинт /bitrix/services/mobileapp/jn.php вываливает "из коробки" basic-аутентификацию. Сама по себе успешная аутентификация никуда не ведет насколько я знаю (на практике при вводе легитимных логина/пароля возвращалась пустая страница), но эту "фичу" можно использовать для удобного перебора логина:пароля от основной админки.

Basic-аутентификация на конечной точке /bitrix/services/mobileapp/jn.php

4. Многие знают про директорию demo, которая часто используется для регистрации в админке.

Однако есть не менее интересная директория local - о ней нужно помнить и перебирать, так как зачастую там бывает много полезного. Например, local/license_key.php и другие забавы (здесь должен был быть скриншот, но я его потерял:( )

4.1 Я пересматривал вышеупомянутый доклад и обнаружил, что коллега в презентации фиксирует ещё одну конечную точку для регистрации в Bitrix. Однако в текстовом виде в посте она не фигурирует.

Итак, фиксируем себе ещё один URL для регистрации в битриксе (да-да, я перепечатал его со стоп-кадра из доклада):

bitrix/wizards/bitrix/demo/indexes/ru/cancel/?register=yes

P/S Интересный факт: на одном из проектов ни одна кастомная регистрация не выстрелила, но именно эта сработала и принесла хороший импакт в дальнейшем.


5. Не пренебрегайте веб-кэшем через Wayback machine или обычным dorking-ом. Достаточно немного включить фантазию и может быть вам встретится что-то интересное, как на примере ниже.

Попытка поиска через dorking конечных точек в директории local

В данной заметке представлены мои личные наблюдения, которые в частности пригождались и на BB, и на боевых пентестах. Я надеюсь, что эти маленькие нюансы в сумме смогут помочь вам и вашей команде на проектах. Спасибо за прочтение:)

Report Page