Скрипт 4images

Discussion in 'Уязвимости' started by blaga, 25 Apr 2006.

Thread Status:
Not open for further replies.
  1. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    Я думаю многие знают дырку в скрипте 4images.
    Когда в адресе пишеш index.php?template=../../../../../../../etc/passwd%00 и он выдает тебе содержимое passwd.
    Ссори если вопрос тупой... А как от этого избавится на своем сайте? Чтоб не было такой фигни.?
     
  2. vectorg

    vectorg Противоядие

    Joined:
    7 Aug 2005
    Messages:
    335
    Likes Received:
    140
    Reputations:
    236
    я помогу тебе сделать, только дай мне этот скрипт
     
  3. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    2VectorG я тебе конечно верю, но не мог бы ты мне СКАЗАТЬ как это делается. Чтоб не искать потом троянчика в скрипте. Я ни на что не намекаю, просто люди разные бывают...
     
  4. Azazel

    Azazel Заведующий всем

    Joined:
    17 Apr 2005
    Messages:
    918
    Likes Received:
    213
    Reputations:
    154
    2 blaga. Найди статью Green Beer про php инъекции. Он описывал

    $dir=str_replace("/","",$dir); // Отфильтруем нехорошие символы
    $dir=str_replace(":","",$dir);
    $dir=str_replace(".","",$dir);
     
    1 person likes this.
  5. vectorg

    vectorg Противоядие

    Joined:
    7 Aug 2005
    Messages:
    335
    Likes Received:
    140
    Reputations:
    236
    какие трояны? там 3 строчки кода...
    используй поиск, были статьи от Green_Bear и ZaCo
    но в твоём случае, всё просто как палка

    мне просто нужен твой скрипт, чтобы посмотреть реализацию этого дела...
     
    #5 vectorg, 25 Apr 2006
    Last edited: 25 Apr 2006
  6. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    2VectorG этож паблик. Неужели не можеш скачать такой же? Этот скрипт далеко не редкость.
     
  7. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    Есть паблик сплойт от рога ( вроде такой ник ). Он аффтоматически закачевает картинку в шеллкодом и выдает тебе ссцылку уже на готовый шелл. Рабочий, уже пробывал.
     
  8. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    2max_pain89 да мне не сплоит нужен а зашита.
     
  9. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    вот код
    PHP:
    <?php

    $templates_used 
    'home,category_bit,whos_online,thumbnail_bit';
    $main_template 'home';

    define('GET_CACHES'1);
    define('ROOT_PATH''./');
    define('GET_USER_ONLINE'1);
    include(
    ROOT_PATH.'global.php');
    require(
    ROOT_PATH.'includes/sessions.php');
    $user_access get_permission();

    if (isset(
    $HTTP_GET_VARS['template']) || isset($HTTP_POST_VARS['template'])) {
      
    $template = (isset($HTTP_GET_VARS['template'])) ? stripslashes(trim($HTTP_GET_VARS['template'])) : stripslashes(trim($HTTP_POST_VARS['template']));
      if (!
    file_exists(TEMPLATE_PATH."/".$template.".".$site_template->template_extension)) {
        
    $template "";
       
      }
      else {
        
    $main_template $template;
      
      }
    }
    else {
      
    $template "";

    }
    include(
    ROOT_PATH.'includes/page_header.php');

    if (!empty(
    $template)) {
      
    $clickstream "<a href=\"".$site_sess->url(ROOT_PATH."index.php")."\">".$lang['home']."</a>".$config['category_separator'].str_replace("_"" "ucfirst($template));
      
    $site_template->register_vars("clickstream"$clickstream);
      
    $site_template->print_template($site_template->parse_template($main_template));
      include(
    ROOT_PATH.'includes/page_footer.php');
    }

    //-----------------------------------------------------
    //--- Show Categories ---------------------------------
    //-----------------------------------------------------
    $categories get_categories(0);
    if (!
    $categories)  {
      
    $categories $lang['no_categories'];
    }
    $site_template->register_vars("categories"$categories);
    unset(
    $categories);

    //-----------------------------------------------------
    //--- Show New Images ---------------------------------
    //-----------------------------------------------------
    $imgtable_width ceil(intval($config['image_table_width']) / $config['image_cells']);
    if ((
    substr($config['image_table_width'], -1)) == "%") {
      
    $imgtable_width .= "%";
    }

    $additional_sql "";
    if (!empty(
    $additional_image_fields)) {
      foreach (
    $additional_image_fields as $key => $val) {
        
    $additional_sql .= ", i.".$key;
      }
    }

    $num_new_images $config['image_cells'];
    $sql "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.""user_name")."
            FROM "
    .IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c
            LEFT JOIN "
    .USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = i.user_id)
            WHERE i.image_active = 1 AND c.cat_id = i.cat_id AND i.cat_id IN ("
    .get_auth_cat_sql("auth_viewcat").")
            ORDER BY i.image_date DESC
            LIMIT 
    $num_new_images";
    $result $site_db->query($sql);
    $num_rows $site_db->get_numrows($result);

    if (!
    $num_rows)  {
      
    $new_images "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\"><tr class=\"imagerow1\"><td>";
      
    $new_images .= $lang['no_new_images'];
      
    $new_images .= "</td></tr></table>";
    }
    else  {
      
    $new_images "<table width=\"".$config['image_table_width']."\" border=\"0\" cellpadding=\"".$config['image_table_cellpadding']."\" cellspacing=\"".$config['image_table_cellspacing']."\">";
      
    $count 0;
      
    $bgcounter 0;
      while (
    $image_row $site_db->fetch_array($result)){
        if (
    $count == 0) {
          
    $row_bg_number = ($bgcounter++ % == 0) ? 2;
          
    $new_images .= "<tr class=\"imagerow".$row_bg_number."\">\n";
        }
        
    $new_images .= "<td width=\"".$imgtable_width."\" valign=\"top\">\n";

        
    show_image($image_row);
        
    $new_images .= $site_template->parse_template("thumbnail_bit");
        
    $new_images .= "\n</td>\n";
        
    $count++;
        if (
    $count == $config['image_cells']) {
          
    $new_images .= "</tr>\n";
          
    $count 0;
        }
      } 
    // end while

      
    if ($count 0)  {
        
    $leftover = ($config['image_cells'] - $count);
        if (
    $leftover >= 1) {
          for (
    $f 0$f $leftover$f++) {
            
    $new_images .= "<td width=\"".$imgtable_width."\">\n&nbsp;\n</td>\n";
          }
          
    $new_images .= "</tr>\n";
        }
      }
      
    $new_images .= "</table>\n";
    // end else

    $site_template->register_vars("new_images"$new_images);
    unset(
    $new_images);

    //-----------------------------------------------------
    //--- Print Out ---------------------------------------
    //-----------------------------------------------------
    $site_template->register_vars(array(
      
    "msg" => $msg,
      
    "clickstream" => $clickstream
    ));
    $site_template->print_template($site_template->parse_template($main_template));
    include(
    ROOT_PATH.'includes/page_footer.php');
    ?>
    пробовал кое что но не канает. все равно палит.
     
  10. max_pain89

    max_pain89 Eat `em UP!

    Joined:
    11 Dec 2004
    Messages:
    451
    Likes Received:
    140
    Reputations:
    146
    if (preg_match ("/../i", $template))
    {
    die('FUCK OFF!');
    }
     
    1 person likes this.
  11. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    Ответ есть.Тема закрыта.
     
Thread Status:
Not open for further replies.