頭像上傳、照片上傳、oa辦公文件上傳、媒體上傳,在這些允許用戶上傳文件的地方,如果過濾不嚴格,惡意用戶可以利用文件上傳漏洞將有害的可執行腳本文件上傳到服務器,可以獲得服務器的權限,也可以進壹步危害服務器。
非法用戶可以上傳的惡意文件控制了整個網站,甚至服務器。這種惡意腳本文件也稱為webshell,可以查看服務器信息、目錄、執行系統命令等。上傳webshell後門後。
文件上傳的類型:
1,前端js旁路
上傳文件的時候,用戶選擇文件的時候,或者提交的時候,有些網站會驗證前端文件名,壹般會檢查後綴是否是上傳的格式。如果上傳的格式不正確,會彈出提示文字。此時,數據包不會提交給服務器,而是在客戶端通過js文件進行驗證。如果驗證失敗,則不會提交給服務器進行處理。
2.修改內容類型繞過。
壹些上傳模塊將檢測http類型報頭。如果是圖片類型,允許上傳文件到服務器,否則上傳失敗,因為服務器是通過content-type來確定類型的,而content-type是可以在客戶端修改的。
3.繞過黑名單
上傳模塊有時被寫成黑名單限制。上傳文件時獲取後綴,然後檢測後綴和程序中的黑名單。如果後綴在黑名單列表中,文件將被禁止上傳。
4、htaccess重寫解析旁路
上傳模塊,黑名單過濾所有可執行文件後綴,如果允許上傳。htaccess文件的作用是:可以幫助我們實現壹些功能,包括文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、更改妳的文件擴展名、阻止特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表、使用其他文件作為索引文件。
在htaccess中編寫SetHandler。
Application/x-httpd-php可以重寫為php文件。為了讓htaccess的規則生效,妳需要在apache中打開重寫模塊,因為大部分apache都打開這個模塊,所以規則壹般都會生效。
5、病例旁路
有些上傳模塊後綴名稱是通過黑名單判斷的,但是後綴名稱的大小寫沒有嚴格判斷,導致後綴大小寫是可以更改和繞過的,比如phP,PHP,Php。