Взлом Dolphin 7 - убираем рекламу boonex`a
Автор: parrot 30.04.2017 16:10
Решил я протестировать движок для создания социальной сети Dolphin 7. Порадовало то что движок «бесплатный», на самом же деле при любом удобном случае «дельфин» напоминал о том что можно купить лицензию и лишится всех недостатков (например рекламы). Т.к. денег у нас нет, а движок стоит от 99$ за самую «гнилую» лицензию, я попробовал решить эту проблему самостоятельно.
О защите …
Защита в Dolphin 7 была довольна банальной, немного побродив по файлам, было обнаружено 2 полу зашифрованных файла design.inc.php и admin_design.inc.php. Расшифровать данные файлы было не проблематично т.к. notepad++ отлично справляется с base64. Порадовало и то, что в файле зашифрованная часть была отодвинута пробелами «от глаз подальше», наверное защита от полных новичков. Фантазия разработчиков на этом не закончилась т.к. многие функции были засунуты в переменные, а те в свою очередь были преобразованы вот в такой вид $s753787, $s653987, но опять же notepad++ обладает «уникальной» возможностью которая называется «поиск с заменой» и чудесным нажатием ctrl + f все преобразованные переменные и функции становятся нормального вида.
О взломе ...
Для взлома первым был выбран файл design.inc.php, зашифрованная часть которого отвечала за вывод в футере рекламы boonex`a. После проведения манипуляций по обходу банальной защиты был проанализирован php код. Защита «порадовала»
if (getParam('enable_dolphin_footer')) { … }
Напомнило детство OlyDbr и первые кряки для написанных тобой же программ на C++/Delphi где заменяли джампы или результат сравнения.
Разумеется мне сразу же захотелось узнать откуда берет значение параметра enable_dolphin_footer функция getParam, конечно можно было просто поставить false, но тогда бы реклама исчезла только из футера, а мне же надо было убрать ее с всего сайта. Порыв недолго файлы работы с БД была обнаружена таблица sys_options в которой и хранился параметр enable_dolphin_footer установленный в on. Обнулив этот параметр реклама с сайта «пропала».
Взлом Dolphin 7 продолжается …
Спустя день после того как я сбросил параметр enable_dolphin_footer в дельфине на моей тестовой площадке вновь появилась реклама. Единственный разумный вывод был наличие в движке так называемых «стучалок». Долго думать не пришлось единственное место, которое еще бросалось в глаза, в исходном коде движка был скрипт admin_design.inc.php, зашифрованный все тем же base64. Расшифровав часть скрипта я начал беглый осмотр кода, который привел меня к строчке:
$fp = @fopen("http://license.boonex.com?LN=$sLN&d=$sDomain&url=$sUrl", 'r');
-
Где:
- $sLN – серийный номер,
- $sDomain – доменное имя сайта,
- $sUrl – url который вы ввели при установке сайта.
Как вы поняли вся эта лабуда отправляется на сайт boonex.com где проверяется наличие лицензии и соответствие доменного имени (одна лицензия один сайт).
Дальше идет извлечение этих значений из xml файла:
if (preg_match('/(\d+)(.*)(\d+)/', $s, $m)){ … }
Думаю и так понятно за что отвечают эти параметры.
Ну и как полагается за всем этим следует куча разнообразных проверок шаг не туда и расстрел…
$bDol = checkDolphinLicense(); setParam('enable_dolphin_footer', ($bDol ? '' : 'on'));
Почему здесь нет кряка? Потому что мне было лень его писать, а имея данное описание несложно все сделать самому!