1. 程式人生 > >ECShop 2.7.2 最新任意使用者登陸漏洞0day

ECShop 2.7.2 最新任意使用者登陸漏洞0day

ECShop 2.7.2 最新任意使用者登陸漏洞0day

(2015-04-02 16:07:28) 轉載

由於最近專案需要, 查看了下商派最新發布的ECShop 2.7.2正式版的原始碼, 沒想到在看到第二個檔案時就發現了一處比較明顯,且低階漏洞。這個漏洞可以讓任何人以任何使用者身份登入到ECShop前臺!漏洞的影響ECShop 2.7.2ECShop2.7.1 不受影響漏洞的出現漏洞出現在/include/init.php檔案的512行左右,程式碼如下: 
ECShop <wbr>2.7.2 <wbr>最新任意使用者登陸漏洞0day

ecshop 2.7.2 最新任意使用者登入漏洞程式碼從程式碼中可以看出,當SESSION中不存在使用者登入資訊的時候,會檢視COOKIE中的$_COOKIE[ECS][user_id]和$_COOKIE[ECS][password]兩個變數。如果兩個變數都不為空,則查詢user表中user_id為$_COOKIE[ECS][user_id]的使用者, 如果該使用者存在,就直接置為登入狀態。而對$_COOKIE[ECS][password]在整個判斷過程中並未進行使用。大家都知道,COOKIE是可以偽造的,所以用工具輕鬆新增這個兩個變數,並設定$_COOKIE[ECS][user_id]為有效值,即可以任意賬戶登入

系統相同的認證方式,在後臺的程式碼(/admin/include/init.php:229)中卻又有比較安全的驗證方式,程式碼如下: 
ECShop <wbr>2.7.2 <wbr>最新任意使用者登陸漏洞0day

ecshop 2.7.2 最新任意使用者登入漏洞程式碼這裡不僅驗證了後臺使用者ID的有效性,還進一步驗證了$_COOKIE[ECSCP][admin_pass]的有效性, 這樣就是比較完善的方式。漏洞簡單利用開啟由ecshop 2.7.2構建的商城系統, 當前為未登入狀態開啟COOKIE編輯軟體,這裡我用的FireFox的外掛FireCookie新建兩個COOKIE變數:$_COOKIE[ECS][user_id]和$_COOKIE[ECS][password],如下圖所示: 

ECShop <wbr>2.7.2 <wbr>最新任意使用者登陸漏洞0day

ecshop 2.7.2 最新任意使用者登入漏洞利用

ECShop <wbr>2.7.2 <wbr>最新任意使用者登陸漏洞0day