概述
文件下載功能在很多web系統上都會出現,一般我們當點擊下載鏈接,便會向後臺發送一個下載請求,一般這個請求會包含一個需要下載的文件名稱,後臺在收到請求後 會開始執行下載代碼,將該文件名對應的文件response給瀏覽器,從而完成下載。
如果後臺在收到請求的文件名後,將其直接拼進下載文件的路徑中而不對其進行安全判斷的話,則可能會引發不安全的文件下載漏洞。
此時如果 攻擊者提交的不是一個程序預期的的文件名,而是一個精心構造的路徑(比如…/…/…/etc/passwd),則很有可能會直接將該指定的文件下載下來。
從而導致後臺敏感信息(密碼文件、源代碼等)被下載。
所以,在設計文件下載功能時,如果下載的目標文件是由前端傳進來的,則一定要對傳進來的文件進行安全考慮。
切記:所有與前端交互的數據都是不安全的,不能掉以輕心!
不安全的文件下載
看看題目,點擊相應鏈接即可下載圖片。
審查一下元素,找到具體的下載鏈接。
構造我們所需要的下載鏈接。
/vul/unsafedownload/execdownload.php?filename=../../../../../../../../etc/passwd
成功下載我們想要的文件。