非正常圖片的特點:在windows縮略圖狀態下查看;
不同浏覽器對圖片文件的解析方式不同:
Firefox會先按照文件擴展名來解析,而IE會先按照文件內容來解析,因此,當圖片頭部帶有惡意代碼時,通常IE6都會進行執行;
圖片文件結構:將惡意代碼放到文件頭的部分是攻擊最有效的做法;
一般的圖像文件結構主要都包含有文件頭、文件體和文件尾等三部分:
文件頭的主要內容包括產生或編輯該圖像文件的軟件的信息以及圖像本身的參數。這些參數必須完整地描述圖像數據的所有特征,因此是圖像文件中的關鍵數據。當然,根據不同的文件,有的參數是可選的,如壓縮算法,有的文件無壓縮,有的文件可選擇多種方法壓縮。
文件體主要包括圖像數據以及顏色變換查找表或調色板數據。這部分是文件的主體,對文件容量的大小起決定作用。如果是真彩色圖像,則無顏色變換查找表或調色板數據,對於256色的調色板,每種顏色值用24 bit表示,則調色板的數據長度為256×3(Byte)。
文件尾可包含一些用戶信息。文件尾是可選項,有的文件格式不包括這部分內容。由於文件體數據量較之文件頭與文件尾要大得多,而文件體中顏色變換表或調色板所占用的空間一般也比圖像數據小得多,因此圖像文件的容量一般能夠表示圖像數據的容量(壓縮或無壓縮)。
怎樣制作含有惡意代碼的圖片:
1) 在文件最前面加入’”><script>alert(1)</script><”
2) Cmd 下 >copy succ.jpg /b + safRegex.txt /a ttt.jpg——將safRegex.txt的內容加到succ.jpg的最後面,然後生成ttt.jpg
怎樣防范惡意圖片上傳:上傳時做壓縮處理,能做壓縮的就是正常圖片,否則就是不正常圖片,不能只通過檢查文件頭是否為圖片做標准,因為文件體中也有可能存在可執行的惡意代碼;
圖片上傳的安全測試方法:用王挺提供的兩種非正常圖片(url.jpg,T1a.lbXixMXXb1upjX.jpg),如果能夠上傳成功,就一定存在文件上傳漏洞;
上傳excel文件的安全測試方法:
excel文件->crm後台->DB->系統展示數據:在字符類型單元格中放入script腳本,然後看系統在最終展示數據時是否會做html編碼(不是在錄入的時候處理);
excel文件->TFS->crm後台系統附件->用戶保存到本地->通過office雙擊打開:在excel中嵌入宏病毒,觸發執行;處理方式是在TFS上對文件進行病毒掃描;
Flash的安全掃描工具
Flash文件中可能會嵌入Asp的代碼從而產生破壞,所以,要將上傳的flash文件存放到不同的域當中(基於同源策略,這樣flash中的惡意代碼就拿不到系統的相關信息了)
對於遠程顯示的flash播放,要在頁面屬性中“有時”和“從不”,永遠不要選擇“總是”;
文件上傳的安全體系:白名單+hash()+圖片內容壓縮;
上傳的地方應過濾掉.jsp;.php;.asp類型的文件,可以通過白名單,黑名單和hash(文件名).(白名單)的方式存於服務器上;
Nigix和apache也有自己的MIME,當它遇到文件最後的那個擴展名無法進行解析的時候,就會尋找倒數第二個擴展名,因此一些惡意文件會利用這點(*.php.2222),這樣惡意文件就有可能被執行;
原文:http://tmalltesting.com/archives/735