網站漏洞檢測解析繞過上傳漏洞

網站安全發表於2019-09-23

在日常對客戶網站進行滲透測試服務的時候,我們SINE安全經常遇到客戶網站,app存在檔案上傳功能,程式設計師在設計開發程式碼的過程中都會對上傳的檔案型別,格式,字尾名做安全效驗與過濾判斷,SINE安全工程師在對檔案上傳漏洞進行測試的時候,往往發現的網站漏洞都是由於伺服器的環境漏洞導致的,像IIS,apache,nginx環境,都存在著可以導致任意檔案上傳的漏洞。

網站漏洞檢測解析繞過上傳漏洞

關於導致檔案上傳漏洞的產生以及測試,我們來詳細的分析一下:

IIS解析漏洞導致的任意檔案上傳

首先比較常見的是客戶網站使用的IIS環境來搭建的,一般是IIS+PHP+Mysql資料庫組合,或者IIS+aspx+sql2005資料庫,IIS存在解析漏洞,當建立檔名為.php的時候,在這個目錄下的所有檔案,或者程式碼,都會以PHP指令碼的許可權去執行,比如其中一個客戶網站,可以將上傳的目錄改為1.php,那麼我們上傳的jpg檔案到這個目錄下,訪問的網址是域名/1.php/1.jpg從瀏覽器裡訪問這個地址,就會是php指令碼的許可權執行。當上傳網站木馬webshell過去,就會直接拿到網站的管理許可權。存在IIS解析漏洞的版本是5.0-6.0版本。

nginx解析漏洞導致的任意檔案上傳

nginx是靜態訪問,以及大併發,能夠承載多人訪問,目前很多網站都在使用的一種伺服器環境,簡單來講就是HTTP訪問的代理,高速穩定,深受很多網站運營者的喜歡,在nginx最低版本中存在解析漏洞,可以導致執行PHP指令碼檔案,漏洞產生的原因是由於php.ini配置檔案與nginx配合解析的時候,將預設的字尾名認為是最重的檔名,導致可以修改字尾名來執行PHP檔案。我們SINE安全在滲透測試中發現客戶網站開啟nginx以及fast-cgi模式後,就會很容易的上傳網站木馬到網站目錄中,我們將jpg圖片檔案插入一句話木馬程式碼,並上傳到網站的圖片目錄中。

我們在訪問這個圖片的時候,直接在後面輸入/1.php,就會導致圖片檔案以php指令碼許可權來執行了。如下圖所示:

網站漏洞檢測解析繞過上傳漏洞

apache解析漏洞導致的任意檔案上傳

apache也是目前使用較多的一個伺服器環境,尤其php網站使用的較多,因為穩定,快速,易於PHP訪問,可以將第三方的一些開發語言編譯到網站中,apache也是存在漏洞的,尤其在apache1.0-2.0版本中,字尾名判斷這裡沒有做詳細的規定,導致可以繞過apache安全機制,上傳惡意的檔名。預設是允許多個字尾名進行解析的,如果命名的字尾名不被apache認可解析,就會向前尋找字尾名,直到字尾名是apache認可的,就會直接解析成功。 該檔案上傳漏洞使用的條件是需要開啟module模式,不是這個模式的上傳不了。我們SINE安全在對客戶網站進行滲透測試的時候,首先會改字尾名為apache不認可的,然後POST上傳過去,直接執行php指令碼。如下圖所示:

網站漏洞檢測解析繞過上傳漏洞

總的來說導致任意檔案上傳漏洞的發生也存在於伺服器環境中,那麼在滲透測試過程中該如何的修復漏洞呢?將IIS版本升級到7.0以上,Nginx版本也升級到最新版本,包括apache版本升級到2.4以上,在上傳功能程式碼裡對其進行檔案格式的判斷,限制目錄的建立,可杜絕以上的問題的發生。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2657885/,如需轉載,請註明出處,否則將追究法律責任。

相關文章