Отправка почты формами Bitrix 9 (Можно ли пропатчить ископаемый Битрикс?)

Все, что не подходит под определение "старого софта и железа", обсуждается здесь
Ответить
Аватара пользователя
ATauenis
Advanced Member
Сообщения: 5531
Зарегистрирован: 30.04.2015,21:30
Откуда: Москва
Контактная информация:

Вклад в сообщество

Отправка почты формами Bitrix 9

Сообщение ATauenis » 21.04.2017,16:39

Можно ли пропатчить ископаемый Битрикс?

В качестве учебной практики в колледже дали поадминить сайт одной конторы, работающий под 1С-Битрикс 9. Почему такая старая версия и хозяева просят не обновлять её просьба не спрашивать, сам не знаю. Там выдали задание доработать сайт, по мелочам всякое, в том числе изменить форму отправки сообщений с форм на сайте. Там есть несколько форм (bitrix:form.result.new), с которых уходят сообщения на рабочую почту. Клиенты пользуются ими довольно активно. Но на почту приходит очень сложно читаемый текст такого формата:
На сайте "Йцукенг" заполнена форма "Опросный лист ЯЧСМИТ".

Поле первое:
*************************
значение

Поле второе:
*************************
значение

Поле третье:
*************************

Поле четвёртое от начала страницы и самое нижнее:
*************************
значение

Просмотреть форму: http://www.example.com/bitrix/a/b?c=d
В поле №3 не опечатка, а просто клиент не заполнил поле (оно малозначимое в его случае). В конторе задолбались разглядывать сквозь "подчёркивания" фиксированным числом звёздочек заполнил клиент поля, или нет. Полей около 20 штук. В общем, надо убрать нехорошие звёздочки и добавить заглушки на пустые поля (типа "---"), либо вообще их не выводить. Работы тут на 5 строчек PHP-кода и 10 минут работы включая отладку. Но беда в чём, половина Битрикса закодирована (или как минимум скомпилирована Zend'ом, не разбирался, FTP-доступа нет, через админку выкачивать бинарники весёлое занятие), плюс я Битрикс вижу первый раз, ещё не везде разобрался в устройстве. Можно ли отредактировать код отправки формы? Если можно, то где он находится? Или же можно посылать их читать такие письма дальше и обращаться вместо меня к 1С (где, понятное дело, их пошлют)?

Аватара пользователя
misha_weba
Advanced Member
Сообщения: 340
Зарегистрирован: 14.04.2017,11:32
Откуда: СПб
Контактная информация:

Сообщение misha_weba » 22.04.2017,02:24

Ничего себе подмена понятий !
Поадминить сайт и переписать что-то в его кодовой базе, тем более, если часть кода обфусцирована - это сильно не одно и тоже.

Старая версия может быть по ряду причин, но чаще всего - это либо собственные допилы в движке, либо использование каких-то сторонних модулей и плагинов, чувствительных к версии CMS. Где может быть в коде зарыт обработчик формы именно вашего сайта - знают только ваши разработчики.

Я бы начал с команды типа grep -R '*******' /var/www на сервере, чтобы найти все файлы, где есть строка из нескольких звёздочек подряд. Если не находится - попробовать поискать в дампе базы, мало ли там шаблон какой залит. Если и там нет - слать лесами за Сусаниным, проблема явно принимает сложный оборот и выходит сильно за рамки обычного администрирования.

И перед тем, как что-то пробовать поменять - обязательно бэкап, файлы + база. Битрикс - штука хрупкая, особенно столь старый.
7700K/32G/30T+/1070; C633/384M/20G/GF4/3.5"+5.25"; 80386/2M/256M/GD610/3.5";

Аватара пользователя
ATauenis
Advanced Member
Сообщения: 5531
Зарегистрирован: 30.04.2015,21:30
Откуда: Москва
Контактная информация:

Вклад в сообщество

Сообщение ATauenis » 22.04.2017,11:56

misha_weba писал(а):Ничего себе подмена понятий !
Поадминить сайт и переписать что-то в его кодовой базе
Да, зря я там сказал, что знаю PHP. :) Зато приобрёл опыт в ковырянии Битрикса, точнее шаблонов и компонентов, ядро только читал.
misha_weba писал(а):Я бы начал с команды типа grep -R '*******' /var/www на сервере, чтобы найти все файлы, где есть строка из нескольких звёздочек подряд.
А там эти звёздочки сидят в комментариях в файлах, которые ещё идут открытым текстом. Поиск средствами админки находит половину файлов Битрикса. Получить дамп базы будет сложнее. Всё, что у меня имеется - это доступ к админке. Пароли от FTP/SSH-доступа и базы вроде как утеряны. phpMyAdmin на сервере отсутствует.
misha_weba писал(а): Где может быть в коде зарыт обработчик формы именно вашего сайта - знают только ваши разработчики.
Такое имеет право быть. Шаблон там авторский, компоненты к нему тоже явно не 1С-овские. Хотя форма опросных листов это стандартный компонент.

Привёл пример файла: http://rgho.st/6XKVLkHWN
Надеюсь, скачался правильно (расширение PHP но файл бинарный).

Аватара пользователя
misha_weba
Advanced Member
Сообщения: 340
Зарегистрирован: 14.04.2017,11:32
Откуда: СПб
Контактная информация:

Сообщение misha_weba » 02.05.2017,01:29

Получить дамп базы будет сложнее. Всё, что у меня имеется - это доступ к админке.
Ну так создаёте новую страницу, туда код любого опенсурсного веб-шелла (их тонна, c99shell вполне ок), потом извлекаете логин/пароль , которыми битрикс в бд ходит (в переменных соответствующих лежат), потом добавляете страницу с админером и получаете нормальный доступ к базе. Это как раз исполнимо.

Пример файла полная жесть:
Zend 2004072203222317987x и много-много бинарного мусора
Поздравляю, защитнечки аффтарских прав и любители DRM/обфускации убили проект и лишили его возможностей дальнейшего развития. Если нет _нормальных_ исходников, из которых это бинарное месиво компилировалось - тушите свет. Хотя собрать что-то на зенде 13-и летней давности - ухх, квест. Интересно, какие ему версии php по нраву =).

Хотя если есть много свободного времени, сил и сильное желание расковырять, можно попробовать силы в деобфускации. https://habrahabr.ru/post/137459/

Но на мой взгляд, обфусцированный некро-код 2004 года (если я правильно распознал версию зенда) и древний битрикс не стоят потраченных усилий. Ковыряние может отнять слишком много сил, времени и денег. Ещё можно накрутить своих обходных костылей и обёрток - в отличие от обфусцированного кода, хотя бы можно будет понять, как они работают и как-то их развивать дальше и фиксить под потребности.

Я бы рекомендовал тут уже думать о переписывании заново. И не принимать никаких подобных вы***нов с обфускацией - иначе это деньги на ветер и повторный заход на грабли.

А форму для отправки почты и её обработчик написать с нуля, и не мучить мозг зендом и бинарниками. Вляпались, так уж вляпались.
7700K/32G/30T+/1070; C633/384M/20G/GF4/3.5"+5.25"; 80386/2M/256M/GD610/3.5";

Аватара пользователя
ATauenis
Advanced Member
Сообщения: 5531
Зарегистрирован: 30.04.2015,21:30
Откуда: Москва
Контактная информация:

Вклад в сообщество

Сообщение ATauenis » 02.05.2017,10:45

misha_weba писал(а):
Получить дамп базы будет сложнее. Всё, что у меня имеется - это доступ к админке.
Ну так создаёте новую страницу, туда код любого опенсурсного веб-шелла
Спасибо за совет! Намотал на ус.
misha_weba писал(а):Я бы рекомендовал тут уже думать о переписывании заново.
Так наверно я и поступлю.

Ответить