Я думаю многие знают дырку в скрипте 4images. Когда в адресе пишеш index.php?template=../../../../../../../etc/passwd%00 и он выдает тебе содержимое passwd. Ссори если вопрос тупой... А как от этого избавится на своем сайте? Чтоб не было такой фигни.?
2VectorG я тебе конечно верю, но не мог бы ты мне СКАЗАТЬ как это делается. Чтоб не искать потом троянчика в скрипте. Я ни на что не намекаю, просто люди разные бывают...
2 blaga. Найди статью Green Beer про php инъекции. Он описывал $dir=str_replace("/","",$dir); // Отфильтруем нехорошие символы $dir=str_replace(":","",$dir); $dir=str_replace(".","",$dir);
какие трояны? там 3 строчки кода... используй поиск, были статьи от Green_Bear и ZaCo но в твоём случае, всё просто как палка мне просто нужен твой скрипт, чтобы посмотреть реализацию этого дела...
Есть паблик сплойт от рога ( вроде такой ник ). Он аффтоматически закачевает картинку в шеллкодом и выдает тебе ссцылку уже на готовый шелл. Рабочий, уже пробывал.
вот код 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++ % 2 == 0) ? 1 : 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 \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'); ?> пробовал кое что но не канает. все равно палит.