Web安全之檔案上傳

HighBox發表於2020-09-26

檔案上傳漏洞原理:

現在很多web應用程式中允許上傳圖片,文字或者其他資源到指定的位置,檔案上傳漏洞就是利用這些可以上傳的地方將惡意程式碼植入到伺服器中,然後通過url去訪問以執行程式碼。

防範措施

對於上傳檔案的字尾名(副檔名)沒有做較為嚴格的限制(可繞過)

對於上傳檔案的MIMETYPE 沒有做檢查

許可權上沒有對於上傳的檔案的檔案許可權,(尤其是對於shebang型別的檔案)

web server對於上傳檔案或者指定目錄的行為沒有做限制

繞過方式

  • 1修改前端JS程式碼或抓包

  • 檢測擴充名,如果不合法,則拒絕這次上傳,一般有兩種策略:黑名單和白名單,白名單策略是更加安全的,通過限制上傳型別為只有我們接受的型別,可以較好的保證安全,因為黑名單我們可以使用各種方法來進行注入和突破。

  • Nginx空位元組漏洞 xxx.jpg%00.php 這樣的檔名會被解析為php程式碼執行

  • Apache的解析漏洞,上傳如a.php.rar a.php.gif 型別的檔名,可以避免對於php檔案的過濾機制,但是由於apache在解析檔名的時候是N從右向左讀,如果遇到不能A識別的副檔名則跳過,rar等副檔名是apache不能識別的,因此就會直接將型別識別為php,從而達到了注入php程式碼的目的

檢查HTTP Header中的Content-Type(很不安全),HTTP協議規定了上傳資源的時候在Header中加上一項檔案的MIMETYPE,來識別檔案型別,這個動作是由瀏覽器完成的
MIMETYPE

可以通過抓包的方式進行中間人攻擊(BP)

============================================
找到了一位師傅的Writup
檔案上傳進階

利用最新Apache解析漏洞(CVE-2017-15715)繞過上傳黑名單

相關文章