犀牛(RhinOS)CMS 3.X任意文件下載漏洞(CVE-2018-18760)
1. 簡介
RhinOS是一個使用最新功能開發網站的框架,可以為Web門戶提供最快的訪問和管理。RhinOS CMS對於網站管理功能十分強勁,內置允許使用資料庫進程和解析器模塊快速訪問資料庫,xml和其他資源,購物車,標籤和參數化文件,配置參數,Intranet訪問,資料庫會話,電子郵件發送,驗證碼安全系統,快速過濾,列表和詳細信息的模塊,功能可謂是非常之多了。RhinOS CMS的download.php文件存在任意文件下載漏洞,通過漏洞能夠下載任意的文件。
2. 環境搭建
RhinOS CMS 下載地址為:https://sourceforge.net/projects/rhinos/。下載完成後,打開文件,一直點下一步就能夠完成安裝,如圖1所示。
圖1 完成安裝
由於一些編碼原因,安裝成功後的的信息會顯示一些亂碼,如果使用西班牙語的系統就能正常顯示了。然後需要將httpd.conf中的埠修改為8080埠,修改埠是為了避免和WINDOWS本身一些服務衝突,http.conf所在路徑為:C:
hinoshttpdconfhttpd.conf。如圖2所示。
圖2 httpd.conf所在路徑
右鍵編輯將文件中的80埠修改為8080埠,如圖3所示。
圖3 修改埠
修改埠後需要重啟阿帕奇服務,重啟服務後訪問http://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如下:http://127.0.0.1:8080/admin/inicio.php?include=php/download.php&name=efe.php&file=../config.php,如圖7所示。
圖7 下載config.php
當然既然是任意文件下來漏洞肯定可以下載windows目錄下面的win.ini文件,使用URL為:http://127.0.0.1:8080/admin/inicio.php?include=php/download.php&name=efe.php&file=../../../../Windows/win.ini。執行後就能夠下載文件了。如圖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
推薦閱讀: