白帽駭客資安網-網站安全的靠山,提供漏洞修補,網站被駭入侵,網站資訊安全服務

ECSHOP通用版本~盲注漏洞警示資料庫洩漏與修補建議與教學。

如果以下還是未將您的資料庫資料洩漏給解決,建議請找我們esafe白帽駭客資安網.

ECShop存在一個盲注漏洞,問題存在於/api/client/api.php檔中,提交特製的惡意POST請求可進行SQL注入攻擊,可獲得敏感資訊或操作資料庫。
 
路徑:/api/client/includes/lib_api.php
 
參照以下修改:
 
function API_UserLogin($post)
{
    /* SQL注入過濾 */
    if (get_magic_quotes_gpc())
    {     
        $post['UserId'] = $post['UserId'];
    }
    else
    {     
        $post['UserId'] = addslashes($post['UserId']);     
    }
 
    /* end */
    $post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';
 
ecshop的後臺編輯檔/admin/shopinfo.php中,對輸入參數id未進行正確類型轉義,導致整型注入的發生。
路徑: /admin/shopinfo.php(修改53-71-105-123行)
 
原始程式碼:
 
admin_priv('shopinfo_manage');
 
修改為:
 
admin_priv('shopinfo_manage');
 
$_REQUEST['id'] = intval($_REQUEST['id']);
 
文件/admin/affiliate_ck.php中,對輸入參數auid未進行正確類型轉義,導致整型注入的發生。
路徑: /admin/shopinfo.php(修改31-51行)
 
原始程式碼:
 
$logdb = get_affiliate_ck();
 
修改為:
 
$_GET['auid'] = intval($_GET['auid']);
$logdb = get_affiliate_ck();
 
ecshop的/admin/comment_manage.php中,對輸入參數sort_by、sort_order未進行嚴格過濾,導致SQL注入。
參照以下修改:
 
$filter['sort_by']      = empty($_REQUEST['sort_by']) ? 'add_time' : trim(htmlspecialchars($_REQUEST['sort_by']));
$filter['sort_order']   = empty($_REQUEST['sort_order']) ? 'DESC' : trim(htmlspecialchars($_REQUEST['sort_order']));
 
ecshop沒有對會員註冊處的username過濾,保存重的使用者資訊時,可以直接寫入shell。
路徑:/admin/integrate.php
 
參照以下修改(大概109行):
 
$code = empty($_GET['code']) ? '' : trim(addslashes($_GET['code']));
 
參照以下修改(大概601行):
 
原始程式碼:
 
@file_put_contents(ROOT_PATH . 'data/repeat_user.php', $json->encode($repeat_user));
 
修改為:
 
@file_put_contents(ROOT_PATH.'data/repeat_user.php','<?php die();?>'.$json->encode($repeat_user));
 
ecshop後臺模版編譯導致駭客可插入任意惡意程式碼。
路徑:/admin/edit_languages.php(大概120行)
 
$dst_items[$i] = $_POST['item_id'][$i] .' = '. '"' .$_POST['item_content'][$i]. '";';
 
修改為:
 
$dst_items[$i] = $_POST['item_id'][$i] .' = '. '\'' .$_POST['item_content'][$i]. '\';';
 
ecshop的/includes/lib_insert.php檔中,對輸入參數未進行正確類型轉義,導致整型注入的發生。
有$arr['num'] 、$arr['id']、$arr['type']這些參數的,在函數開頭加上:
 
大概289行加上:
 
$arr['num'] = intval($arr['num']);
$arr['id'] = intval($arr['id']);
 
大概454行加上:
 
$arr['id'] = intval($arr['id']);
$arr['type'] = addslashes($arr['type']);
 
大概495行加上:
 
$arr['id'] = intval($arr['id']);
 
fckeditor編輯器任意檔上傳漏洞,建議刪除檔
路徑:/admin/lib_main.php(找到create_html_editor函數)
 
原始程式碼:
 
$editor = new FCKeditor($input_name);
$editor->BasePath   = '../includes/fckeditor/';
$editor->ToolbarSet = 'Normal';
$editor->Width      = '100%';
$editor->Height     = '320';
$editor->Value      = $input_value;
$FCKeditor = $editor->CreateHtml();
//$smarty->assign('FCKeditor', $FCKeditor);
$kindeditor="
    <textarea id=\"$input_name\" name=\"$input_name\" style='width:100%;height:300px;'>$input_value</textarea>
    <script charset='utf-8' src='../includes/kindeditor/kindeditor-min.js'></script>
    <script>
        var editor;
        KindEditor.ready(function(K) {
            window.editor = K.create('textarea[name=\"$input_name\"]', {
                allowFileManager : true,    //流覽遠端伺服器按鈕
                width : '100%',    //寬
                height : '320px',    //高
                resizeType : 2,    //2或1或0,2時可以拖動改變寬度和高度,1時只能改變高度,0時不能拖動
                afterBlur : function(){this.sync();}    //afterBlur當失去焦點時執行 this.sync(); ->取得textarea的value
            });
        });
    </script>";
 
修改為:
 
$kindeditor="
    <textarea id=\"$input_name\" name=\"$input_name\" style='width:100%; height:500px;'>$input_value</textarea>
    <script charset='utf-8' src='../includes/kindeditor/kindeditor-min.js'></script>
    <script>
        var editor;
        KindEditor.ready(function(K) {
            editor = K.create('textarea[name=\"$input_name\"]', {
                allowFileManager : true,
                width : '100%',  // 編輯方塊的寬度
                height: '320px',  //...高度
                resizeType: 0,   //固定寬高 1為不固定
                afterBlur : function(){this.sync();}    //afterBlur當失去焦點時執行 this.sync(); ->取得textarea的value
            });
        });
    </script>";
 
/admin/*.php 檔(*代表所有)
 
搜索此內容全部去掉:
 
require_once(ROOT_PATH . "includes/fckeditor/fckeditor.php");
 
搜索以下內容:
 
原始程式碼:
 
include_once(ROOT_PATH."includes/fckeditor/fckeditor.php");
/* 編輯器 */
$editor = new FCKeditor('FCKeditor1');
$editor->BasePath   = "../includes/fckeditor/";
$editor->ToolbarSet = "Normal";
$editor->Width      = "95%";
$editor->Height     = "500";
$editor->Value      = $file_content;
$fckeditor = $editor->CreateHtml();
$smarty->assign('fckeditor', $fckeditor);
 
修改為:
 
$smarty->assign('fckeditor', create_html_editor('FCKeditor1', $file_content));
————————————————
以上修改前請先備份,修復後還是被入侵建議找esafe白帽駭客資安網幫您服務。
 

分享: