您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop的sql注入漏洞修复方法
孟航2024-12-10 17:07:56ecshop商城教程已有人查阅
导读公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞
公司部署了一个ecshop网站用于做网上商城使用,部署在阿里云服务器上,第二天收到阿里云控制台发来的告警信息,发现ecshop网站目录下文件sql注入漏洞以及程序漏洞
与技术沟通未果的情况下,网上查了点资料,对其文件进行修复,如下修改:
1,/admin/shopinfo.php修复方法
(大概在第53、71、105、123行,4个地方修复方式都一样) admin_priv(‘shopinfo_manage‘); 修改为 admin_priv(‘shopinfo_manage‘); $_REQUEST[‘id‘] =intval($_REQUEST[‘id‘]);
2,/admin/shophelp.php修复方法
(大概在第81、105、133、155行,4个地方修复方式都一样) admin_priv(‘shophelp_manage‘); 修改为 admin_priv(‘shophelp_manage‘); $_POST[‘id‘] =intval($_POST[‘id‘]);
3,/api/client/includes/lib_api.php漏洞修复方法
5,/admin/affiliate_ck.php sql注入漏洞修复
get_affiliate_ck函数.
function get_affiliate_ck()226行
修复方案
对$_GET[‘auid’]强制转换
文件在/admin/comment_manage.php后台sql注入漏洞。
/admin/comment_manage.php修复方法(大概在第336行)
防御方法
/includes/modules/payment/alipay.php
ecshop的/includes/lib_insert.php文件中,对输入参数未进行正确类型转义,导致整型注入的发生。
与技术沟通未果的情况下,网上查了点资料,对其文件进行修复,如下修改:
1,/admin/shopinfo.php修复方法
(大概在第53、71、105、123行,4个地方修复方式都一样) admin_priv(‘shopinfo_manage‘); 修改为 admin_priv(‘shopinfo_manage‘); $_REQUEST[‘id‘] =intval($_REQUEST[‘id‘]);
2,/admin/shophelp.php修复方法
(大概在第81、105、133、155行,4个地方修复方式都一样) admin_priv(‘shophelp_manage‘); 修改为 admin_priv(‘shophelp_manage‘); $_POST[‘id‘] =intval($_POST[‘id‘]);
3,/api/client/includes/lib_api.php漏洞修复方法
functionAPI_UserLogin($post)
{
/*添加 SQL注入过滤 */
if (get_magic_quotes_gpc())
{
$post[‘UserId‘] = $post[‘UserId‘]
}
else
{
$post[‘UserId‘] =addslashes($post[‘UserId‘]);
}
/* */
$post[‘username‘] = isset($post[‘UserId‘])? trim($post[‘UserId‘]) : ‘‘;
…….
4,\admin\edit_languages.php漏洞修复方法
// 修复前
$dst_items[$i]= $_POST[‘item_id‘][$i] .‘ = ‘. ‘"‘ .$_POST[‘item_content‘][$i].‘";‘;
// 修复后,由于想在单引号之间出现单引号,必须使用转义。
$dst_items[$i]= $_POST[‘item_id‘][$i] .‘ = ‘. ‘\‘‘ .$_POST[‘item_content‘][$i]. ‘\‘;‘;
修复后,测试一下,是否还有漏洞。5,/admin/affiliate_ck.php sql注入漏洞修复
get_affiliate_ck函数.
function get_affiliate_ck()226行
修复方案
对$_GET[‘auid’]强制转换
if (isset($_GET[‘auid‘]))
{
$sqladd = ‘ AND a.user_id=‘ . intval($_GET[‘auid‘]);
}
6,/admin/comment_manage.php注入漏洞修复 336行文件在/admin/comment_manage.php后台sql注入漏洞。
/admin/comment_manage.php修复方法(大概在第336行)
$filter[‘sort_by‘] =empty($_REQUEST[‘sort_by‘]) ? ‘add_time‘ : trim($_REQUEST[‘sort_by‘]);
$filter[‘sort_order‘] = empty($_REQUEST[‘sort_order‘]) ? ‘DESC‘ :trim($_REQUEST[‘sort_order‘]);
修改为
$sort =array(‘comment_id‘,‘comment_rank‘,‘add_time‘,‘id_value‘,‘status‘);
$filter[‘sort_by‘] = in_array($_REQUEST[‘sort_by‘], $sort) ?trim($_REQUEST[‘sort_by‘]) : ‘add_time‘;
$filter[‘sort_order‘] = empty($_REQUEST[‘sort_order‘])? ‘DESC‘ : ‘ASC‘;
7,/includes/modules/payment/alipay.phpSQL注入漏洞 116行防御方法
/includes/modules/payment/alipay.php
functionrespond()
{
if (!empty($_POST))
{
foreach($_POST as $key => $data)
{
$_GET[$key] = $data;
}
}
$payment = get_payment($_GET[‘code‘]);
$seller_email =rawurldecode($_GET[‘seller_email‘]);
$order_sn = str_replace($_GET[‘subject‘],‘‘, $_GET[‘out_trade_no‘]);
/* 对$order_sn进行有效过滤 */
$order_sn = trim(addslashes($order_sn));
/* */
..
8,/includes/lib_insert.phpsql注入漏洞修复ecshop的/includes/lib_insert.php文件中,对输入参数未进行正确类型转义,导致整型注入的发生。
139c139,140
+ $arr[‘num‘] = intval($arr[‘num‘]);
+ $arr[‘id‘] = intval($arr[‘id‘]);
267c268
---
270c271,272
+ $arr[‘id‘] = intval($arr[‘id‘]);
+ $arr[‘type‘] = addslashes($arr[‘type‘]);
308c310
---
+ $arr[‘id‘] = intval($arr[‘id‘]);
修改后更新阿里云控制台,提示已经修复,大功告成
本文标签:
很赞哦! ()
上一篇:ecshop常用文件模板说明介绍
下一篇:ecshop会员怎么整合UC
相关文章
随机图文
-
ecshop首页上显示最新评论及评论内容和时间的方法
本教程以“ECSHOP2.7.2 + 官方默认模板” 为例,其他模板大同小异,步骤一:将下面代码 ,并保存为一个库文件,文件名和保存路径为 -
ecshop的session传值
<?phpclass cls_session{var $session_table = '';var $max_life_time = 1440; // SESSION 过期时间var $session_name = '';var $session_id = ''; -
ecshop文章被人家自动加上版本声明和网址方法
自己辛辛苦苦写的原创文章被人家转载时候希望自动加上版权声明和网址,下面是修改教程:1.新建立一个copyright.js文件:里面文字自行修改成你们自己的文字 -
ecshop常用文件模板说明介绍
1.模板文件说明 style.css – 模板所使用样式表 activity.dwt – 活动列表 article.dwt – 文章内容页 article_cat.dwt – 文章列表页 article_pro.dwt – 前一篇文章
留言与评论 (共有 条评论) |