米安程式碼審計 05 檔案上傳漏洞
本文記錄 PHP 程式碼審計的學習過程,教程為暗月 2015 版的 PHP 程式碼審計課程
1. 簡介
-
危害
如果不對被上傳的檔案進行限制或者限制被繞過,該功能便有可能會被利用於上傳可執行檔案、指令碼到伺服器上,進而進一步導致伺服器淪陷。
-
漏洞成因
- 導致檔案上傳的漏洞的原因較多,主要包括以下幾類
- 伺服器配置不當
- 開源編輯器上傳漏洞
- 本地檔案上傳限制被繞過
- 過濾不嚴或被繞過
- 檔案解析漏洞導致檔案執行
- 檔案路徑截斷
2. 漏洞成因
-
伺服器配置不當
當伺服器配置不當時,在不需要上傳頁面的情況下便可導致任意檔案上傳,參見HTTP請求方法(PUT)。
-
開源編輯器上傳漏洞
很多開源的編輯器歷史上都有不同的上傳漏洞,包括但不只限於CKEditor,CKEditor的檔案上傳漏洞參見CKEditor。
-
本地檔案上傳限制被繞過
只在客戶端瀏覽器上做了檔案限制而沒有在遠端的伺服器上做限制,只需要修改資料包就可以輕鬆繞過限制。
-
過濾不嚴或被繞過
- 有些網站上使用了黑名單過濾掉了一些關鍵的可執行檔案指令碼字尾等,但黑名單不全或者被繞過,導致可執行指令碼檔案被上傳到伺服器上,執行。
- 如在伺服器後端過濾掉了字尾為.php的檔案,但並沒有過濾掉.php3等其他可執行檔案指令碼字尾,攻擊者就可以上傳帶有其他的可執行檔案指令碼本字尾的惡意檔案到伺服器上。
- 在某些情況下由於管理員錯誤的伺服器配置(將.html字尾的檔案使用php進行解析等)會導致.html、.xml等靜態頁面字尾的檔案也可被執行。
- 在上傳檔案儲存磁碟為NTFS格式時可通過::$DATA繞過黑名單限制,參見NTFS中的ADS的一些問題[歡迎一起討論,求思路求方法]。
- 有時伺服器只對第一個被上傳的檔案進行了檢查,這時通過同時上傳多個檔案並將惡意檔案摻雜進其中也可繞過伺服器的過濾。
-
常用指令碼字尾
php php2 php3 php5 phtml asp aspx ascx ashx cer jsp jspx
相關文章
- 米安程式碼審計 06 PHPYUN V3.0 任意檔案上傳漏洞PHP
- 米安程式碼審計 07 越權漏洞
- 米安程式碼審計 04 截斷漏洞剖析
- Java程式碼審計篇 - ofcms系統審計思路講解 - 篇3 - 檔案上傳漏洞審計Java
- [程式碼審計]php上傳漏洞總結PHP
- 程式碼審計之邏輯上傳漏洞挖掘
- 米安程式碼審計 08 ThinkSNS 垂直平行越權
- 檔案上傳漏洞
- WEB漏洞——檔案上傳Web
- Java審計之檔案操作漏洞Java
- javaWeb上傳檔案程式碼JavaWeb
- Web安全-檔案上傳漏洞Web
- 淺析檔案上傳漏洞
- WEB安全:檔案上傳漏洞Web
- 檔案包含漏洞(本地包含配合檔案上傳)
- <web滲透-檔案上傳漏洞>Web
- 檔案上傳(解析)漏洞詳解
- 檔案上傳漏洞總結(全)
- 任意檔案上傳漏洞修復
- 檔案上傳漏洞思路詳解
- Web 安全漏洞之檔案上傳Web
- 檔案上傳漏洞(繞過姿勢)
- [JavaWeb]Shiro漏洞集合——程式碼審計JavaWeb
- 網站漏洞修復之Metinfo 檔案上傳漏洞網站
- 解析漏洞與檔案上傳漏洞—一對好兄弟
- 3. 檔案上傳漏洞——漏洞總結筆記筆記
- 檔案上傳漏洞防範-檔案型別檢測型別
- 檔案上傳/下載後臺程式碼
- 漏洞重溫之檔案上傳(總結)
- 文字檔案上傳漏洞[任意.繞過.解析]
- fckeditor<=2.6.4任意檔案上傳漏洞
- ctfshow檔案上傳漏洞做題記錄
- java程式碼審計人工漏洞檢測方法Java
- PHP程式碼審計 XSS反射型漏洞PHP反射
- PHP程式碼審計05之正則使用不當PHP
- Java檔案上傳功能程式碼——普遍適用Java
- 檔案上傳之解析漏洞編輯器安全
- 安全漏洞問題5:上傳任意檔案