PDA

View Full Version : 我看到有人通过自动下载配置或者网址上的链接重复进入网站


Indian Springs Village
2016-05-14, 06:00 PM
问题:

我看到有人通过自动下载配置或者网址上的链接重复进入网站



回答:


Zen Cart的旧版本(V1.3.0,1.3.0.1,1.3.0.2)中,有一个黑客帝国宣布的代码漏洞。即使在后续版本中已被修复,黑客新手仍在继续试图寻找有漏洞的网站,因此还是会浪费你的时间和精力去担忧。他们的访问也在试图浪费网站服务器的一些资源。

此外,有一些SQL攻击悬浮在互联网周边,试图在漏统系统中发现可利用的漏洞。Zen Cart的当前版本对所有已知的漏洞有免疫力了。然而,有时甚至是“企图”在黑客上可以显示在服务器日志和whos-online entries(即使失败了),也可以是迷惑甚至震惊一些店主。因此,下面的代码改变可以提供一些平和的心态:

如果使用Zen Cart的1.3.x版本,添加以下内容到/includes/application_top.php 文件的顶部,有助于忽略这些游客和他们企图消耗系统资源的访问:

/includes/application_top.php contains: "<?php"的第一行

在第二行的开头添加这个:

/**

* inoculate against hack attempts which waste CPU cycles

*/

$contaminated = (isset($_FILES['GLOBALS']) || isset($_REQUEST['GLOBALS'])) ? true : false;

$paramsToAvoid = array('GLOBALS', '_COOKIE', '_ENV', '_FILES', '_GET', '_POST', '_REQUEST', '_SERVER', '_SESSION', 'HTTP_COOKIE_VARS', 'HTTP_ENV_VARS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_POST_FILES', 'HTTP_RAW_POST_DATA', 'HTTP_SERVER_VARS', 'HTTP_SESSION_VARS');

$paramsToAvoid[] = 'autoLoadConfig';

$paramsToAvoid[] = 'mosConfig_absolute_path';

$paramsToAvoid[] = 'hash';

$paramsToAvoid[] = 'main';

foreach($paramsToAvoid as $key) {

if (isset($_GET[$key]) || isset($_POST[$key]) || isset($_COOKIE[$key])) {

$contaminated = true;

break;

}

}

$paramsToCheck = array('main_page', 'cPath', 'products_id', 'language', 'currency', 'action', 'manufacturers_id', 'pID', 'pid', 'reviews_id', 'filter_id', 'zenid', 'sort', 'number_of_uploads', 'notify', 'page_holder', 'chapter', 'alpha_filter_id', 'typefilter', 'disp_order', 'id', 'key', 'music_genre_id', 'record_company_id', 'set_session_login', 'faq_item', 'edit', 'delete', 'search_in_description', 'dfrom', 'pfrom', 'dto', 'pto', 'inc_subcat', 'payment_error', 'order', 'gv_no', 'pos', 'addr', 'error', 'count', 'error_message', 'info_message', 'cID', 'page', 'credit_class_error_code');

if (!$contaminated) {

foreach($paramsToCheck as $key) {

if (isset($_GET[$key]) && !is_array($_GET[$key])) {

if (substr($_GET[$key], 0, 4) == 'http' || strstr($_GET[$key], '//')) {

$contaminated = true;

break;

}

if (isset($_GET[$key]) && strlen($_GET[$key]) > 43) {

$contaminated = true;

break;

}

}

}

}

unset($paramsToCheck, $paramsToAvoid, $key);

if ($contaminated)

{

header('HTTP/1.1 406 Not Acceptable');

exit(0);

}

unset($contaminated);

/* *** END OF INNOCULATION *** */

使用此代码不会影响好的访问者,例如搜索引擎,只要他们试图访问的是你网站上的合法内容。它只阻止恶意的行为。

适用于Zen Cart的版本:1.3.0, 1.3.0.1, 1.3.0.2, 1.3.5, 1.3.6., 1.3.7, 1.3.8.
此建议修改代码(或它的变体)纳入Zen Cart v1.3.9及更高的版本。