#學習前必讀:
1 、課前一定要明白:
無文件解析安全問題上,格式解析是一對一的(不能 jpg 解析 php )
換句話來說有解析錯誤配置或后綴解析漏洞時才能實現格式差異解析
2 、文件上傳安全指的是攻擊者通過利用上傳實現后門的寫入連接后門進行權限控制的安
全問題,對于如何確保這類安全問題,一般會從原生態功能中的文件內容,文件后綴,文
件類型等方面判斷,但是漏洞可能不僅在本身的代碼驗證邏輯中出現安全問題,也會在語
言版本,語言函數,中間件,引用的第三方編輯器等存在缺陷地方配合利用。另外文件上
傳也有多個存儲邏輯,不同的文件存儲方案也會給攻擊者帶來不一樣的挑戰!
# 測試環境安裝參考:
https://github.com/ffffffff0x/f8x
https://github.com/fuzzdb-project/fuzzdb
https://github.com/sqlsec/upload-labs-docker
0 、下載上述資源
1 、 docker 安裝
f8x -d 或 f8x -docker
2 、進入項目文件夾
cd upload-labs-docker
3 、一鍵部署運行
docker-compose up -d
#upload-labs-docker 知識點:
1 、前端 JS
如何判斷是否是前端驗證呢?
首先抓包監聽,如果上傳文件的時候還沒有抓取到數據包,但是瀏覽器就提示文件類型不
正確的話,那么這個多半就是前端校驗了
2 、 .htaccess
AddType application/x-httpd-php .png(將png類型解析成php類型)
先上傳.htaccess 在上傳png類型
3 、 MIME 類型
Content-Type : image/png
4 、文件頭判斷
GIF89a
5 、黑名單 - 過濾不嚴(大小寫 雙寫php? 00截斷(魔術開關要關 版本小于5.34)? ?PHP5之類)
6.條件競爭
先上傳 后判斷邏輯(就是在文件上傳一剎那 訪問)
7.二次渲染
如果放大圖片 還要圖片清晰 就會進行二次渲染 這就會改動代碼? 使用010editor?
8.函數缺陷
對于move_upload_file 函數 上傳文件用shell.php/.就能上傳