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

  • Автор темы Автор темы Amaini
  • Дата начала Дата начала

Amaini

Любитель Лапши
Команда форума
Moderator
Разрушитель (V)
Сообщения
404
Реакции
301
Баллы
20 326
Была когда то давно такая тема: Плюшки от Лома [типо блог или около блог]
Предлагаю вознаградить традицию и писать заметки которые могут пригодиться в будущих исследованиях CMS,.

Заметка из переписки с одним форумчанином, на пальцах про то как CMS парсит свои upd файлы.
Спасибо ему!
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
 
Контрольные строки в системе.
У разработчиков CMS своеобразный юмор, для "подписи" любого модуля и создания демо периода используют две контрольные строки.
Если одна из них является $keystr = 'thRH4u67fhw87V7Hyr12Hwy0rFr' набором символов,
То вторая прямо просит $keystr = 'DO_NOT_STEAL_OUR_BUS' - Не воруйте наш автобус. Данное послание стоит рассматривать как пасхальное яйцо и просьбу к воздержании от использования контента без лицензии.
 
Про лицензионный ключ.

Лицензионный ключ системы можно получить с помощью функции 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


Некоторые разработчики проводят дополнительную проверку лицензии с помощью запросов к серверу обновлений битриса.
Но бывают такие наглые которые отправляют себе на сервер хеш лицензионного ключа без соли!
 
Последнее редактирование:
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");
 
Последнее редактирование:
Вопрос:
Если по первому варианту init.php
то
Код:
header("P3P: policyref=\"/bitrix/p3p.xml\", CP=\"NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA\"");
остается, это на что то влияет?
Можно же в init.php добавить
Код:
header("P3P: NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA", true);
 
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");
теперь это не работает! как быть? может есть у кого другой скрипт
 
Назад
Верх