ecshop /includes/init.php Arbitrary User Login Vul
生活随笔
收集整理的這篇文章主要介紹了
ecshop /includes/init.php Arbitrary User Login Vul
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
catalog
1. 漏洞描述 2. 漏洞觸發條件 3. 漏洞影響范圍 4. 漏洞代碼分析 5. 防御方法 6. 攻防思考?
1. 漏洞描述
對用戶輸入的cookie,判斷免登的邏輯中存在漏洞,導致黑客可以直接通過cookie偽造登錄任意用戶
Relevant Link:
http://sebug.net/vuldb/ssvid-19575
2. 漏洞觸發條件
cookie注入
3. 漏洞影響范圍
4. 漏洞代碼分析
/includes/init.php
/* session 不存在,檢查 cookie */ if (!emptyempty($_COOKIE['ECS']['user_id']) && !emptyempty($_COOKIE['ECS']['password'])) { // 找到了cookie, 驗證cookie信息 $sql = 'SELECT user_id, user_name, password ' . ' FROM ' .$ecs->table('users') . " WHERE user_id = '" . intval($_COOKIE['ECS']['user_id']) . "'"; $row = $db->GetRow($sql);從代碼中可以看出, 當SESSION中不存在用戶登錄信息的時候, 會查看COOKIE中的$_COOKIE['ECS']['user_id']和$_COOKIE['ECS']['password']兩個變量。如果 兩個變量都不為空,則查詢user表中user_id為$_COOKIE['ECS']['user_id']的用戶, 如果該用戶存在, 就直接置為登錄狀態。而對$_COOKIE['ECS']['password']在整個判斷過程中并未進行使用
5. 防御方法
/includes/init.php
// session 不存在,檢查cookie if (!empty($_COOKIE['ECS']['user_id']) && !empty($_COOKIE['ECS']['password'])) {// 找到了cookie, 驗證cookie信息/* 同時驗證$_COOKIE['ECS']['user_id']、$_COOKIE['ECS']['password'] */$sql = 'SELECT user_id, user_name, password ' .' FROM ' .$ecs->table('users') ." WHERE user_id = '" . intval($_COOKIE['ECS']['user_id']) . "' AND password = '" .$_COOKIE['ECS']['password']. "'";/* */$row = $db->GetRow($sql);
6. 攻防思考
Copyright (c) 2015 LittleHann All rights reserved
?
總結
以上是生活随笔為你收集整理的ecshop /includes/init.php Arbitrary User Login Vul的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机模拟WIN2008创建域控制器与故
- 下一篇: 如何用Dummy实例执行数据库的还原和恢