Защититься от скули

Discussion in 'Песочница' started by heks, 29 Jul 2011.

  1. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    как защитить булку 4.1.3 от этой баги
    http://www.exploit-db.com/exploits/17555/
     
  2. d1v

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

    Joined:
    21 Feb 2009
    Messages:
    674
    Likes Received:
    332
    Reputations:
    120
    обновить до 4.1.4 (с) К.О.
     
  3. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    Я думаю можно не только обновить, а бажный файл подредактировать просто
     
  4. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Code:
    if ($registry->GPC_exists['messagegroupid'] AND count($registry->GPC['messagegroupid']) > 0) 
      
            { 
      
                $value = $registry->GPC['messagegroupid']; 
      
                if (!is_array($value)) 
      
                { 
      
                    $value = array($value); 
      
                } 
      
                for ($i = 0; $i < count($value); $++) {
                            $value[$i] = (int)$value[$i];
                }
      
                if (!(in_array(' ',$value) OR in_array('',$value)))  //эту проверку можно вообще убрать
      
                { 
      
                    if ($rst = $vbulletin->db->query_read(" 
      
                        SELECT socialgroup.name 
      
                        FROM " . TABLE_PREFIX."socialgroup AS socialgroup 
      
                     WHERE so
    
    в код к булке не лез, но по логике туда интовые значения передаются, простым приведением к целому можно отбросить скуль.

    Конечно можно бы было сделать покрасивее - поправить метод объекта $registry->GPC(), чтобы он сразу фильтровал нормально....
     
  5. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    Как поправить код если можно поподробнее распиши
     
  6. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    ну едрён батон. Ты ж сам давал ссылку на эксплоит.

    /vbforum/search/type/socialgroupmessage.php
    vbforum - папка с форумом может быть своя. Дальше по идее должны быть стандартные пути /search/type/
    конечный файл тебя должен интересовать вот этот socialgroupmessage.php.
    Ищешь это
    Code:
    if (!is_array($value)) 
    { 
    $value = array($value); 
    } 
    
    после втыкаешь
    Code:
     
    for ($i = 0; $i < count($value); $++) {
              $value[$i] = (int)$value[$i];
    }
    
    в итоге получается код внутри которого находится кусок как я писал в первом посте по твоей проблеме.