1. 程式人生 > >CMS網站漏洞修復對獲取管理員密碼漏洞如何修復

CMS網站漏洞修復對獲取管理員密碼漏洞如何修復

PbootCMS是網站常用的一款CMS系統,是由國內著名程式開發商翔雲科技研發的一套網站CMS系統,免費開源,擴充套件性較高,使用的企業很多但是避免不了網站存在漏洞,SINE安全對其程式碼進行安全審計的同時發現該pbootcms 存在嚴重的漏洞,包含SQL注入獲取管理員密碼漏洞,以及遠端程式碼注入執行漏洞。該pbootcms系統採用的是PHP語言開發,資料庫是MYSQL,並支援pgsql資料庫大併發處理,系統預設支援的伺服器環境,PHP5.3版本以上,以及mysql版本5.6,apache,nginx,都可以執行該CMS系統。關於這次檢測出來的CMS漏洞,我們進行詳細的介紹。

之前的pbootcms老版本出現的漏洞也比較多,我們這次審計的是pbootcms V1.3.3新版本,新版本較於老版本更新了許多,SQL注入非法引數的過濾,以及上傳漏洞的修復,過濾系統的加強,但還是始終沒有嚴格的杜絕非法引數的傳入。我們來看下這個遠端程式碼注入執行漏洞,該漏洞產生的原因是在ParserController.php程式碼裡的LABEL方式呼叫shat函式,我們來看下程式碼:

我們找到label呼叫的方式,一步步跟蹤程式碼查到是使用了after的方式呼叫,看到註釋的內容大體的意思是網站的前端模板在進行解析標籤的操作是,會對網站前端的預設資料庫標籤進行解析,然後通過標籤的內容再進行傳遞數值,在傳遞的過程中,使用者輸入的一些資料造成了這次遠端程式碼注入執行漏洞。

pbootcms v1.3.3版本的過濾了一些非法注入引數,但是還是可以進行程式碼繞過,可以使用寬位元組繞過注入,使用字元轉義也可以對過濾系統進行繞過,混跡程式碼加強運算子也可以對pbootcms的安全過濾系統進行繞過。我們來測試一下:

構造我們的注入程式碼:我們在伺服器裡搭建了一個測試環境,[本地/index.php/index/index?safe=](本地/index.php/index/index?safe=){pboot:if(1)$a=$_GET[b];$a();;//)})}}{/pboot:if}&b=phpinfo

我們來執行看下,竟然執行了phpinfo查詢,我們也可以執行一些查詢資料庫的賬號密碼等管理員的操作。

pbootcms獲取管理員密碼漏洞分析

關於這個網站漏洞的產生是存在於ParserController.php程式碼裡的parserSearchLabel()方式進行的呼叫程式碼,可以插入一些非法的引數,單引號,轉義符,斜槓等等非法引數,我們使用OR注入程式碼,進行獲取管理員賬號密碼就可以了。

關於pbootcms漏洞修復,建議網站的運營者儘快升級pbootcms到最新版本,也可以在伺服器端進行sql注入攻擊防護,攔截get、post、cookies提交的非法引數。對網站上的漏洞進行修復,或者是對網站安全防護引數進行重新設定,使他符合當時的網站環境。如果不懂如何修復網站漏洞,也可以找專業的網站安全公司來處理,國內也就Sinesafe和綠盟、啟明星辰等安全公司比較專業.針對於pbootcms預設的管理員登入地址進行修改,預設是admin.php改為anquan123admin.php即可,儘量長一些,字母加數字組合,避免攻擊者進行暴力猜解,利用獲取到的管理員賬號密碼登入後臺。