Хак Интересности CMS

Amaini

Команда форума
Moderator
Сообщения
185
Симпатии
121
Баллы
6 769
Была когда то давно такая тема: Плюшки от Лома [типо блог или около блог]
Предлагаю вознаградить традицию и писать заметки которые могут пригодиться в будущих исследованиях CMS,.

Заметка из переписки с одним форумчанином, на пальцах про то как CMS парсит свои upd файлы.
Спасибо ему!
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
 

Amaini

Команда форума
Moderator
Сообщения
185
Симпатии
121
Баллы
6 769
Контрольные строки в системе.
У разработчиков CMS своеобразный юмор, для "подписи" любого модуля и создания демо периода используют две контрольные строки.
Если одна из них является $keystr = 'thRH4u67fhw87V7Hyr12Hwy0rFr' набором символов,
То вторая прямо просит $keystr = 'DO_NOT_STEAL_OUR_BUS' - Не воруйте наш автобус. Данное послание стоит рассматривать как пасхальное яйцо и просьбу к воздержании от использования контента без лицензии.
 

Amaini

Команда форума
Moderator
Сообщения
185
Симпатии
121
Баллы
6 769
Про лицензионный ключ.

Лицензионный ключ системы можно получить с помощью функции CUpdateClientPartner::GetLicenseKey(),
Система не показывает никому лицензионный ключ, кроме администратора в панели управления.

При обмене с сервером обновлений используется md5 хеш лицензионного ключа.
Система получает этот хеш с помощью функции md5(CUpdateClient::GetLicenseKey());
Зная сам лицензионный ключ или его md5 хеш, можно устанавливать решения с сервера обновлений.

Теперь представим ситуацию в которой Вы, не хотите чтобы компания 1C собирала о Вас информацию по хешу ключа.
Технический мы заблокировали все возможные хосты, но:
Просоленный хеш лицензионного ключа CMS отдает в HTTP заголовке сервера.
Как выглядит просоленный хеш? - md5("BITRIX".CUpdateClientPartner::GetLicenseKey()."LICENCE");
или md5('bitrix'.CUpdateClientPartner::GetLicenseKey(.'bitrix');
Мы берем лицензионный ключ, перед ним добавляем слово BITRIX, после него слово LICENCE и считаем md5 хеш и отдаем уже ключ в таком виде.
Так компания 1С может проверить наличие лицензии для действующего сайта у CMS

Партнеры битрикса имеют возможность по этому хешу выяснить у компании 1с есть ли этот хеш в базе лицензий, и покупался ли на данных ключ конкретный шаблон.
Потому, важно, чтобы этот хеш не светился "в люди".
Это делается с помощью такой приблуды:
содаете, если нету файл: /bitrix/php_interface/init.php

и туда добавляете
<?
AddEventHandler("main", "OnBeforeProlog", "ChangeHeaders");
function ChangeHeaders() {
header("X-Powered-CMS: Bitrix", true);
header("X-Powered-By: PHP", true);
}

Screenshot_14.png


Некоторые разработчики проводят дополнительную проверку лицензии с помощью запросов к серверу обновлений битриса.
Но бывают такие наглые которые отправляют себе на сервер хеш лицензионного ключа без соли!
 
Последнее редактирование:

who

Созидатель
Сообщения
18
Симпатии
11
Баллы
409
bitrix\php_interface\init.php


Код:
AddEventHandler("main", "OnBeforeProlog", "ChangeHeaders");
function ChangeHeaders() {
header("X-Powered-CMS: PHP", true);
header("X-Powered-By: PHP", true);
header("X-DevSrv-CMS: PHP", true);
}

OR

/bitrix/modules/main/include.php

комментируем строки :
Код:
156 : header("P3P: policyref=\"/bitrix/p3p.xml\", CP=\"NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA\"");
157 : header("X-Powered-CMS: Bitrix Site Manager (".(LICENSE_KEY == "DEMO"? "DEMO" : md5("BITRIX".LICENSE_KEY."LICENCE")).")");
159 : header("X-DevSrv-CMS: Bitrix");
 
Последнее редактирование:
Верх