WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   color   os   ar   使用   

目錄

1. 漏洞描述2. 漏洞觸發條件3. 漏洞影響範圍4. 漏洞程式碼分析5. 防禦方法6. 攻防思考

 

1. 漏洞描述

http://www.wooyun.org/bugs/wooyun-2010-067447

WDCP這個控制台CMS提供了一個伺服器管理的功能,但是對mysql/add_user.php這個指令檔沒有進行必要的身分識別驗證,導致任意使用者都可以訪問這個介面


2. 漏洞觸發條件

觸發條件為0,任意使用者可以直接存取這個介面,進行賬戶、資料庫的添加

http://xxxxx:8080/mysql/add_user.php

http://xxxxx:8080/mysql/add_db.php

Relevant Link:

http://www.wooyun.org/bugs/wooyun-2010-067447http://www.wdlinux.cn/wdcp/install.html

 
3. 漏洞影響範圍

這個入侵漏洞修複的的情境是在wuyoo報告出漏洞之後,廠商已經進行了修複,並發布了修複後的、被zend加密後的檔案,我們需要使用patch diff compare技術對patch後的代碼和存在漏洞的檔案清單進行對比,定位到本次漏洞事件的源頭,存在漏洞的檔案(因為存在漏洞的檔案可能不只一個)

vul code

find /www/wdlinux/wdcp/mysql -type f -print0 | xargs -0 md5sum 

fixed code

find /zhenghan/vulpoc/wdcp/lanmp/www/wdlinux/wdcp/mysql -type f -print0 | xargs -0 md5sum 

通過diff,我們可以發現,其中只有2個檔案的MD5值是不同的,也就是說官方對這2個檔案進行了代碼修複

add_user.phpadd_db.php


4. 漏洞程式碼分析

0x1: php zendoptimizer

php的zendoptimizer是基於zend的一種代碼先行編譯實現模組,通過提前將代碼先行編譯為一種zendoptimizer可以理解的中繼語言,用空間換時間,甚至在zendoptimizer的最佳化下,並不需要額外的磁碟空間佔用,基於預計算的思想可以顯著地提高php應用程式的運行速度

Relevant Link:

http://www.zend.com/topics/Zend-Optimizer-User-Guide-v330-new.pdfhttp://www.ibm.com/developerworks/cn/opensource/os-php-zend1/http://baike.baidu.com/view/772047.htmhttp://kb.zend.com/how-to-install-zend-optimizer-manually/http://www.zend.com/en/products/guard/downloads#Windowshttp://kb.zend.com/how-to-install-zend-optimizer-manually/#.VFIs2vmUeKQ

0x2: code vul analysis

待審計的代碼經過了zend加密,可以使用DeZender.exe進行解密,之後有時間了想研究一下php的zendoptimizer動態加解密的原理,和基於php擴充實現的DeZender的實現原理

<?     require_once "../inc/common.inc.php";    if (isset($_POST[‘Submit_add‘])) {        $user=chop($_POST[‘user‘]);        $password=chop($_POST[‘password‘]);        $dbname=chop($_POST[‘dbname‘]);        check_user($user);        check_string($password);        check_string($dbname);        //這裡沒有做任何的身分識別驗證就直接進行高風險操作了        create_db_user($user,$password,$host);        grant_db_user($user,$host,$dbname);        mysql_add_user($user,$password,$host,$dbname,$rtime);        optlog($wdcdn_uid,"增加mysql資料庫 $user",0,0);        str_go_url("資料庫使用者增加成功!",0);    }    $member_list=member_list();    $site_list=site_list();    $db_list=db_list();    require_once(G_T("mysql/add_user.htm"));?>


5. 防禦方法

官方給出了修複方案

Relevant Link:

http://www.wdlinux.cn/bbs/thread-37476-1-1.html


6. 攻防思考

1. 身分識別驗證、許可權授權屬於web應用系統的邊界安全,最佳安全實踐應該是在web應用的進入點就進行嚴格的身份認證,而不應該將身份認證放在各個業務功能的子檔案中,這是不合理的2. 在網站的路由進入點進行強制的路由跳轉,進行身份認證,通過認證後通過session來保持住當前認證狀態,並且在所有的子頁面都部署輕量級的身份認證session檢測,如果檢測結果為"未登入",則直接強制跳轉到唯一的中心認證路由頁面上3. 通過這種中心化的防禦思路,可以解決在子頁面中單獨部署身份認證代碼導致的遺漏現象

 

Copyright (c) 2014 LittleHann All rights reserved

 

WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.