1. 簡介

RhinOS是一個使用最新功能開發網站的框架,可以為Web門戶提供最快的訪問和管理。RhinOS CMS對於網站管理功能十分強勁,內置允許使用資料庫進程和解析器模塊快速訪問資料庫,xml和其他資源,購物車,標籤和參數化文件,配置參數,Intranet訪問,資料庫會話,電子郵件發送,驗證碼安全系統,快速過濾,列表和詳細信息的模塊,功能可謂是非常之多了。RhinOS CMS的download.php文件存在任意文件下載漏洞,通過漏洞能夠下載任意的文件。

2. 環境搭建

RhinOS CMS 下載地址為:sourceforge.net/project。下載完成後,打開文件,一直點下一步就能夠完成安裝,如圖1所示。

圖1 完成安裝

由於一些編碼原因,安裝成功後的的信息會顯示一些亂碼,如果使用西班牙語的系統就能正常顯示了。然後需要將httpd.conf中的埠修改為8080埠,修改埠是為了避免和WINDOWS本身一些服務衝突,http.conf所在路徑為:C:
hinoshttpdconfhttpd.conf。如圖2所示。

圖2 httpd.conf所在路徑

右鍵編輯將文件中的80埠修改為8080埠,如圖3所示。

圖3 修改埠

修改埠後需要重啟阿帕奇服務,重啟服務後訪問127.0.0.1:8080。就能夠訪問到已經搭建好的CMS了,如圖4所示。

圖4 重啟阿帕奇服務後訪問

3. 漏洞代碼審計

漏洞存在於C:
hinosdemoadminphpdownload.php中,在第30行代碼,能夠看到文件讀取的路徑拼接操作,如圖5所示。

圖5 download.php

看到getParam(),查找這個方法是如何實現的。

這個函數存在於:C:
hinosdemoadminphpconnect.php。第88行,如圖6所示。

圖6 connect.php

這個函數中獲取了」file」的參數,通過POST或者GET提交都是可以的。然後根據圖5所示第41行觸發文件讀取操作,如果控制參數file則能夠成為任意文件讀取漏洞或者為任意文件下載漏洞。

4. 漏洞復現

在復現之前需要找到從什麼地方調用到了download.php,在經過測試之後發現通過這個URL提交就能夠利用漏洞下載到config.php文件,但是首先需要登錄後台。URL如下:127.0.0.1:8080/admin/in,如圖7所示。

圖7 下載config.php

當然既然是任意文件下來漏洞肯定可以下載windows目錄下面的win.ini文件,使用URL為:127.0.0.1:8080/admin/in。執行後就能夠下載文件了。如圖8所示。

圖8 下載win.ini

5. 修復建議

根據前文的描述能夠看出,漏洞存在一定的危害。應該對於漏洞進行修復,關於如何去修復漏洞。

1) 過濾點[.]要求用戶在url中不能回溯上級目錄。

2) 正則嚴格判斷用戶輸入參數的格式,保證輸入參數的準確性。

3) 將下載區獨立放在項目路徑外,分配每個下載資源固定的URL,不能是所有的下載資源都是統一的URL:

http://127.0.0.1:8080/admin/inicio.php?include=php/download.php&name=efe.php&file=文件名

作者:Topsec-SRC

歡迎來安全脈搏查看更多的乾貨文章和我們一起交流互動哦!

脈搏地址:安全脈搏 | 分享技術,悅享品質

微博地址:Sina Visitor System


推薦閱讀:
相关文章