當前位置:首頁 » 電腦資訊 » 為什麼要使用文件上傳防護

為什麼要使用文件上傳防護

發布時間: 2023-05-29 10:38:01

A. 可以把文件夾放進360安全大腦裡面嗎

這個功能只能上傳單個文件,排除安全隱患~
無法將文件夾放進去。

B. 文件上傳漏洞攻擊方法有什麼

文件上傳漏洞是什麼?怎樣防禦文件上傳漏洞攻擊?文件上傳漏洞是web安全中經常利用到的一種漏洞形式。這種類型的攻擊從大的類型上來說,是攻擊 數據與代碼分離原則 的一種攻擊。
一些web應用程序中允許上傳圖片,文本或者其他資源到指定的位置,文件上傳漏洞就是利用這些可以上傳的地方將惡意代碼植入到伺服器中,再通過url去訪問以執行代碼
造成文件上傳漏洞的原因是
對於上傳文件的後綴名(擴展名)沒有做較為嚴格的限制
對於上傳文件的MIMETYPE 沒有做檢查
許可權上沒有對於上傳的文件的文件許可權,(尤其是對於shebang類型的文件)
對於web server對於上傳文件或者指定目錄的行為沒有做限制
下面就閑話一些文件上傳漏洞的防禦方式和攻擊者的繞過方式
1.前端限制
function check(){
var filename=document.getElementById("file");
var str=filename.value.split(".");
var ext=str[str.length-1];
if(ext=='jpg'||ext=='png'||ext=='jpeg'||ext=='gif'){
return true;
}else{
alert("這不是圖片!")
return false;
}
return false;
}
在表單中使用onsumbit=check()調用js函數來檢查上傳文件的擴展名。這種限制實際上沒有任何用處,任何攻擊者都可以輕而易舉的破解。只能用於對於用戶完全信任的情況下,很難稱之為一種安全措施只能稱之是一種防止用戶誤操作上傳的措施,
反制:
隨便的編輯一下頁面/用burpsuite/寫個小腳本就可以突破之,無須多言
2.檢查擴展名
顧名思義,就是在文件被上傳到服務端的時候,對於文件名的擴展名進行檢查,如果不合法,則拒絕這次上傳
在這里,還有一點是值得一提的,在檢查擴展名是否合法的時候,有兩種策略
黑名單策略,文件擴展名在黑名單中的為不合法,示例代碼
$postfix = end(explode('.','$_POST['filename']);
if($postfix=='php'||$postfix=='asp'||$postfix=='sh'){
echo "invalid file type";
return;
}
白名單策略,文件擴展名不在白名單中的均為不合法
$postfix = end(explode('.','$_POST['filename']);
if($postfix=='jpg'||$postfix=='png'||$postfix=='gif'){
//save the file and do something next
} else {
echo "invalid file type";
return;
}
白名單策略是更加安全的,通過限制上傳類型為只有我們接受的類型,可以較好的保證安全,因為黑名單我們可以使用各種方法來進行注入和突破
反制
在一些 webserver 中,存在解析漏洞
1.老版本的IIS中的目錄解析漏洞,如果網站目錄中有一個 /.asp/目錄,那麼此目錄下面的一切內容都會被當作asp腳本來解析
2.老闆本的IIS中的分號漏洞:IIS在解析文件名的時候可能將分號後面的內容丟棄,那麼我們可以在上傳的時候給後面加入分號內容來避免黑名單過濾,如 a.asp;jpg
3.舊版Windows Server中存在空格和dot漏洞類似於 a.php. 和 a.php[空格] 這樣的文件名存儲後會被windows去掉點和空格,從而使得加上這兩個東西可以突破過濾,成功上傳,並且被當作php代碼來執行
4.nginx空位元組漏洞 xxx.jpg%00.php 這樣的文件名會被解析為php代碼運行
5.apache的解析漏洞,上傳如a.php.rar a.php.gif 類型的文件名,可以避免對於php文件的過濾機制,但是由於apache在解析文件名的時候是從右向左讀,如果遇到不能識別的擴展名則跳過,rar等擴展名是apache不能識別的,因此就會直接將類型識別為php,從而達到了注入php代碼的目的
3.檢查HTTP Header中的Content-Type
HTTP協議規定了上傳資源的時候在Header中加上一項文件的MIMETYPE,來識別文件類型,這個動作是由瀏覽器完成的,服務端可以檢查此類型不過這仍然是不安全的,因為HTTP header可以被發出者或者中間人任意的修改,不過加上一層防護也是可以有一定效果的
反制
使用各種各樣的工具(如burpsuite)強行篡改Header就可以,太容易將header中的
Content-Type: application/php
或者其他類型
改為
Content-Type: image/jpg
Content-Type: image/png
Content-Type: text/plain
等這些web程序允許的淚洗改附上常用的MIMETYPE表
text/plain(純文本)
text/html(HTML文檔)
text/javascript(js代碼)
application/xhtml+xml(XHTML文檔)
image/gif(GIF圖像)
image/jpeg(JPEG圖像)
image/png(PNG圖像)
video/mpeg(MPEG動畫)
application/octet-stream(二進制數據)
application/pdf(PDF文檔)
application/(編程語言) 該種語言的代碼
application/msword(Microsoft Word文件)
message/rfc822(RFC 822形式)
multipart/alternative(HTML郵件的HTML形式和純文本形式,相同內容使用不同形式表示)
application/x-www-form-urlencoded(POST方法提交的表單)
multipart/form-data(POST提交時伴隨文件上傳的表單)
4.分析文件頭內容來檢查文件類型
與方法2不同,還有一種檢查類型的方式是使用對於文件內容的驗證機制,這種方法利用的是每一個特定類型的文件都會有不太一樣的開頭或者標志位。可以通過比如php的exif_imagetype()函數,一個通過這種方法來過濾的示例代碼如下:
if (! exif_imagetype($_FILES['uploadedfile']['tmp_name'])) {
echo "File is not an image";
return;
}
也可以自己編寫函數來進行識別,圖片文件通常有稱作幻數的頭位元組,我們來看一下幾種圖片文件的幻數:
(注意!下面是二進制而不是文本格式的數據)
JPG
FF D8 FF E0 00 10 4A 46 49 46
GIF
47 49 46 38 39 61
(相當於文本的GIF89a)
PNG
89 50 4E 47
通過檢查頭幾位位元組,可以分辨是否是圖片文件
如果是其他類型的二進制文件,也有響應的頭位元組,如下表
反制
給上傳腳本加上相應的幻數頭位元組就可以,php引擎會將
(一般不限制圖片文件格式的時候使用GIF的頭比較方便,因為全都是文本可列印字元。)
GIF89a
do_something();
?>
如果是其他類型的二進制文件,也有響應的頭位元組,如下表
格式
文件頭
TIFF (tif)
49492A00
Windows Bitmap (bmp)
424D
CAD (dwg)
41433130
Adobe Photoshop (psd)
38425053
Rich Text Format (rtf)
7B5C727466
MS Word/Excel (xls.or.doc)
D0CF11E0
MS Access (mdb)
5374616E64617264204A
ZIP Archive (zip),
504B0304
RAR Archive (rar),
7221
Wave (wav),
57415645
AVI (avi),
41564920
Real Media (rm),
2E524D46
MPEG (mpg),
000001BA
MPEG (mpg),
000001B3
Quicktime (mov),
6D6F6F76
Adobe Acrobat (pdf),
255044462D312E
Windows Media (asf),
3026B2758E66CF11
MIDI (mid),
4D546864
5.限制Web Server對於特定類型文件的行為
導致文件上傳漏洞的根本原因在於服務把用戶上傳的本應是數據的內容當作了代碼,一般來說,用戶上傳的內容都會被存儲到特定的一個文件夾下,比如我們很多人習慣於放在 ./upload/ 下面要防止數據被當作代碼執行,我們可以限制web server對於特定文件夾的行為。
大多數服務端軟體都可以支持用戶對於特定類型文件的行為的自定義,以Apache為例:
在默認情況下,對與 .php文件Apache會當作代碼來執行,對於 html,css,js文件,則會直接由HTTP Response交給客戶端程序對於一些資源文件,比如txt,doc,rar等等,則也會以文件下載的方式傳送的客戶端。我們希望用戶上傳的東西僅僅當作資源和數據而不能當作代碼
因此可以使用伺服器程序的介面來進行限制
以Apache為例,我們可以利用 .htaccess 文件機制來對web server行為進行限制
在這里插一句,如果不是專門的文件下載目錄,請務必關掉文件夾瀏覽的許可權,以防止嗅探和可能的越權,也是使用.htaccess文件,在其中加上一句
Options All -Indexes
即可。
禁止腳本執行有多種方式可以實現,而且分別有不同的效果,我們分別來看一下
1.指定特定擴展名的文件的處理方式,原理是指定Response的Content-Type可以加上如下幾行
AddType text/plain .pl .py .php
這種情況下,以上幾種腳本文件會被當作純文本來顯示出來,你也可以換成其他的Content-Type
2.如果要完全禁止特定擴展名的文件被訪問,用下面的幾行
Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi識別
在這種情況下,以上幾種類型的文件被訪問的時候,會返回403 Forbidden的錯誤
3.也可以強制web伺服器對於特定文件類型的處理,與第一條不同的是, 下面的方法直接強行讓apache將文件識別為你指定的類型,而第一種是讓瀏覽器
ForceType text/plain
看代碼就可以很明白的知道,符合上面正則的全部被認為是純文本,也可以繼續往裡面加入其他類型。
4.只允許訪問特定類型的文件
order deny,allow
deny from all
在一個上傳圖片的文件夾下面,就可以加上這段代碼,使得該文件夾裡面只有圖片擴展名的文件才可以被訪問,其他類型都是拒絕訪問。
這又是一個白名單的處理方案
永遠記得,白名單是最有保障的安全措施

可以通過 move_uploaded_file 函數把自己寫的.htaccess 文件上傳,覆蓋掉伺服器上的文件,來定義文件類型和執行許可權如果做到了這一點,將獲得相當大的許可權。

C. springboot項目中怎樣預防文件上傳漏洞急需

預防文件上傳漏洞
1.為了防範用戶上傳惡意的可執行文件和腳本,以及將文件上傳伺服器當做免費的文件存儲伺服器使用,需要對上傳的文件類型進行白名單(非黑名單,這點非常重要)校驗,並且限制上傳文件的大小,上傳的文件,需要進行重新命名,使攻擊者無法猜測到上傳文件的訪問路徑。

2.對於上傳的文件來說,不能簡單的通過後綴名稱來判斷文件的類型,因為惡意攻擊可以將可

執行文件的後綴名稱改成圖片或者其他的後綴類型,誘導用戶執行。因此,判斷文件類型需纖數

要使用更安全的方式。

3.很多類型的槐豎棗文件,起始的幾個位元組內容是固鉛拆定的,因此,根據這幾個位元組的內容,就可以確

定文件類型,這幾個位元組也被稱為魔數(magic number)。(將文件轉換成二進制)

D. 文件上傳漏洞原理是什麼

文件上傳原理

在文件上傳的功能處,若服務端腳本語言未對上傳的文件進行嚴格驗證和過濾,導致惡意用戶上傳惡意的腳本文件時,就有可能獲取執行服務端命令的能力,這就是文件上傳漏洞。

文件上傳漏洞高危觸發點

相冊、頭像上傳

視頻、照片分享

附件上傳(論壇發帖、郵箱)

文件管理器

存在文件上傳功能的地方都有可能存在文件上傳漏洞,比如相冊、頭像上傳,視頻、照片分享。論壇發帖和郵箱等可以上傳附件的地方也是上傳漏洞的高危地帶。另外像文件管理器這樣的功能也有可能被攻擊者所利用值得注意的是,如果移動端也存在類似的操作的話,那麼相同的原理,也存在文件上傳漏洞的風險。

為了防禦文件上傳漏洞的產生,需要在服務端做嚴格的防護,因為瀏覽器、客戶端傳回的數據並不可信任。首先是第一道防線,文件類型檢測,上傳的文件需要經過嚴格的文件類型檢測防止上傳的文件是惡意腳本。

上傳之後的文件要進行重命名。

如果上傳的文件是圖片類型,可以選擇使用重繪圖的方式對圖片進行保存,但是這種方式會對服務端性能稍有影響

最後,文件上傳的目錄不可賦予可執行許可權,可以使用BOS這樣的雲存儲服務,當然最方便的還是使用BOS這樣現成的雲存儲服務

E. 企業如何部署安全有效的數據防泄密策略

使用天銳綠盾羨耐臘加密軟體,便能有效解決企業數據防泄密問題。許多企業單位都有著對數據保護的需求,為防止遭到目前惡劣的互聯網環境侵入破壞,以及防止來自內部人員的非法手段竊密,企業的數據安全問題需要通過合法、有效的手段加以保護。

天銳綠盾主要以以下幾個方面來實現對企業數據的保護:

1、核心數據加密

對於企業的核心數據,採取透明加密的形式,不影響員工的操作習慣,在安全保護狀態下,在企業加密軟體保護的數據只允許在內部可信環境中使用。加密文件一旦在不受信任的環境中使用,就會出現亂碼,消除了加密數據泄露的風險。

2、細粒度劃分文件許可權

通過密鑰管理添加多個密鑰,根據文件密級不同設置不同的密鑰,細分不同部門和等級的員工對文件訪問許可權,避免重要文件在公司所有部門內隨意流轉,減少文件外泄的風險。

3、外發文件加密

公司有時候需要和合作商互發文件,這時管理者可以將需要外發的文件製作成外發包,通過限制外發包最大打開次數限額、天數限額、添加密碼等保護文件的安全,可以有效防止文件在外部環境隨意流轉。

4、移動存儲設備管控

構建大范圍設備管理框架,限制U盤、光碟機、列印機、藍牙、紅外、攜帶型設備等多種外接設備的使用許可權,可以禁止員工電腦usb介面,除滑鼠和鍵盤外其他usb設備均無法使兄滑用;限制員工對U盤的使用許可權,以此限制員工隨意通過U盤拷貝、傳輸公司文件,畝數減少文件外泄的風險。

5、實時監控

終端加密軟體可以監控終端設備的屏幕安全,管理者可以實時監控員工電腦的屏幕運行情況,直觀了解員工的辦公狀態,查看和控制現有的內部威脅風險。

天銳綠盾加密軟體有多種加密方式,實現對文件全場景加密保護,限制機密文件訪問許可權,為企業構建穩定全面的終端安全管理系統,強化企業內部數據的安全防護能力。

F. 企事業單位為什麼需要使用加密軟體

主要是因為一個企業在業務中必定有大量的電子文件流通,如果不採取加密措施,就會存在核心機密文件被有心人竊取,比如員工離職帶走設計圖紙、客戶信息、項目方案等核心資料,或者是競爭對手竊取商業機密,而對於企業來說這些都是企業最有價值的資產,再回頭看看每年發生的大大小小的泄密事件,必定都給企業帶來了巨大損失,為了杜絕此類事件發生在自己身上,所以越來越多的企業會選擇使用加密軟體,從堵住泄密源頭
推薦風奧金甲企業加密解決方案
可自動加密Windows平台上任意格式的文件,加密文件只能在企業內部使用,密文離開加密環境就無法使用,如需外發,必須通過領導授權,並對外發文件進行必要的許可權控制,出差人員授權商務離線,出差期間加密軟體正常允許,文件正常加密,但不影響外出辦公。

G. 殺毒軟體全盤掃描是怎麼一個原理是不是把所有文件都上傳到互聯網進行殺毒

不是。你的文件還在電腦硬碟中,並沒有上傳到互聯網上。全盤殺毒是查查硬碟中的所有文件是否含有病毒代碼。

H. 文件上傳漏洞及解析漏洞總結

Web應用程序通常會有文件上傳的功能, 例如在 BBS發布圖片 , 在個人網站發布ZIP 壓縮 包, 在辦公平台發布DOC文件等 , 只要 Web應用程序允許上傳文件, 就有可能存在文件上傳漏 洞.
什麼樣的網站會有文件上傳漏洞?
大部分文件上傳漏洞的產生是因為Web應用程序沒有對上傳文件的格式進行嚴格過濾 , 還有一部分是攻擊者通過 Web伺服器的解析漏洞來突破Web應用程序的防護, 後面我們會講 到一些常見的解析漏洞, 最後還有一些不常見的其他漏洞, 如 IIS PUT 漏洞等 .

I. 雲幫手最新版本新增了哪些功能

新增了文件防護和文件批量管理兩大功能。
雲幫手「文件防護」功能結合文件上傳防護+文件防篡改+文件高級防護三大模塊,採用首橡驅動級數據保護,從Windows底層驅動層面鎖死文件,主動防禦未知入者仔旁侵,實時阻止任何篡改企圖,徹底杜絕後門植入、文件篡改、網頁木馬戚仔等問題。
雲幫手「文件批量管理」功能支持伺服器文件的批量復制、刪除、壓縮等,讓用戶操作更便捷。

J. 網路安全文件上傳漏洞指什麼類型有哪些

網路安全是個廣而深的領域,為加強網路安全防護、避免漏洞所引發的威脅,漏洞管理成為重要IT策略。本篇文章主要給大家介紹下文件上傳漏洞,請看下文:

文件上傳漏洞是指:由於程序員未對上傳的文件進行嚴格的驗證和過濾,而導致的用戶可以越過其本身許可權向伺服器上傳可執行的動態腳本文件。如數猛散常見的

頭像上傳,圖片上傳,oa辦公文件上傳,媒體上傳,允許用戶上傳文件的地方如果過濾不嚴格,惡意用戶利用文件上傳漏洞,上傳有害的可以執行腳本文件到伺服器中,可以獲取伺服器的許可權,或進一步危害伺服器。

非法用戶可以上傳的惡意文件控制整個網站,甚至是控制伺服器,這個惡意腳本文件,又被稱為webshell,上傳webshell後門之後可查看伺服器信息、目錄、執行系統命令等。

文件上傳的類型:

1、前端js繞過

在文件上傳時,用戶選擇文件時,或者提交時,有些網站會對前端文件名進行驗證,一般檢測後綴名,是否為上傳的格式。如果上傳的格式不對,則彈出提示文字。此時數據包並沒有提交到伺服器,只是在客戶端通過js文件進行校驗,驗證不通過則知枯不會提交到伺服器進行處理。

2、修改content-type繞過

有些上傳模塊,會對http類型頭進行檢測,如果是圖片類型,允許上傳文件到伺服器,否則返回上傳失敗,因為服務端是通過content-type判斷類型,content-type在客戶端可被修改。

3、繞黑名單

上傳模塊,有時候會寫成黑名單限制,在上傳文件的時獲取後綴名,再把後綴名與程序中黑名單進行檢測,如果後綴名在黑名單的列表內,文件將禁止文件上傳。

4、htaccess重寫解析繞過

上傳模塊,黑名單過濾了所有的能執行的後綴名,如果允許上傳.htaccess。htaccess文件的作用是:可以幫我們實現包括:文件夾密碼保護、用戶自動重定向、自定義錯誤頁面、改變你的文件擴展名、封禁特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表,以及使用其他文件作為index文件等一些功能。

在htaccess里寫入SetHandler

application/x-httpd-php則可以文件重寫成php文件。要htaccess的規則生效,則需要在apache開啟rewrite重寫模塊薯氏,因為apache是多數都開啟這個模塊,所以規則一般都生效。

5、大小寫繞過

有的上傳模塊 後綴名採用黑名單判斷,但是沒有對後綴名的大小寫進行嚴格判斷,導致可以更改後綴大小寫可以被繞過,如PHP、Php、phP、pHp。

熱點內容
為什麼微信信息有的刪不掉了 發布:2025-02-07 14:07:23 瀏覽:375
為什麼左眼睛看出來前面有黑圓圈 發布:2025-02-07 14:07:22 瀏覽:587
情侶頭像為什麼有時間限制 發布:2025-02-07 13:56:11 瀏覽:379
淘寶為什麼用wifi就很卡 發布:2025-02-07 13:46:30 瀏覽:202
吃涼東西馬上就流鼻涕為什麼 發布:2025-02-07 13:42:23 瀏覽:809
為什麼4g球機晚上紅外燈不亮 發布:2025-02-07 13:37:13 瀏覽:328
為什麼有的貓眼睛是紅的 發布:2025-02-07 13:32:56 瀏覽:195
新手機為什麼容易耗電 發布:2025-02-07 13:28:02 瀏覽:40
為什麼電烤箱的時間不可以減少 發布:2025-02-07 13:24:14 瀏覽:667
為什麼閉上眼睛就不能走直線了 發布:2025-02-07 13:23:32 瀏覽:434