最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

軟件測(cè)試 | web測(cè)試—上傳帶有惡意文件名的文件

2023-09-11 17:30 作者:愛(ài)測(cè)軟件測(cè)試  | 我要投稿

問(wèn)題

除了常規(guī)HTTP的常規(guī)請(qǐng)求 - 響應(yīng)接觸以外,允許上傳文件的應(yīng)用提供了另一種攻擊途徑。在你上傳文件時(shí),你的瀏覽器會(huì)隨同文件內(nèi)容一起發(fā)送一個(gè)文件名。文件名本身可以為注入攻擊提供一種潛在的機(jī)會(huì)。你需要測(cè)試你的應(yīng)用對(duì)這種文件名的處理方式。本秘訣將演示如何將文件上傳作為一種特殊的輸入表單進(jìn)行測(cè)試。

解決方案

這個(gè)測(cè)試可以用于任何允許用戶(hù)上傳文件的表達(dá),如果這個(gè)文件之后會(huì)被下載或顯示為圖像,那么這個(gè)測(cè)試將特別有用。

首先,在你本地計(jì)算機(jī)上創(chuàng)建一個(gè)測(cè)試圖像文件。將這個(gè)文件復(fù)制復(fù)制若干份,在文件名中使用各種非法或可以的字符,比如單引號(hào),等號(hào)或者圓括號(hào)。例如,在Windows NTFS文件系統(tǒng)中,‘onerror=’alert(‘XSS’)‘a(chǎn)='.jpg是個(gè)合法的文件名。微軟的畫(huà)圖軟件就足以創(chuàng)建這個(gè)圖像,或者你可以復(fù)制并重命名現(xiàn)有的圖像。Unix和Linux文件系統(tǒng)可能會(huì)允許更多的特殊字符,比如管道符號(hào)(|)和斜線(xiàn)號(hào)。

通過(guò)應(yīng)用的表單上傳這個(gè)文件,并完成必要的步驟以找出文件鄂弼顯示或下載的位置。在顯示這個(gè)文件或者列出其下載鏈接的頁(yè)面中,找出源代碼中的文件名。

對(duì)于文件被下載的應(yīng)用,你很可能會(huì)找到指向文件在服務(wù)器上的位置的鏈接。如果文件時(shí)圖像并直接顯示在應(yīng)用中,你應(yīng)該找到引用這個(gè)文件的圖像標(biāo)簽。要確保鏈接或圖位置并不是簡(jiǎn)單地回顯示完全相同的文件名。理論上,URL中會(huì)包含ID編號(hào)而不是實(shí)際文件名?;蛘撸募械奶厥庾址梢酝ㄟ^(guò)斜號(hào)線(xiàn)或某種編碼進(jìn)行轉(zhuǎn)義處理,簡(jiǎn)單地回顯完全相同的文件名可能會(huì)使你的應(yīng)用容易遭受攻擊。

例如,圖5-8中所顯示的基于Web的郵件應(yīng)用通過(guò)反斜線(xiàn)將文件名進(jìn)行轉(zhuǎn)義處理。

討論

文件上傳可能會(huì)揭露出一些重要環(huán)境的漏洞。其中包括操作系統(tǒng)代碼注入,跨站式腳本。SQL注入或者文件處理的濫用。服務(wù)器層次的代碼注入不是典型的應(yīng)用層次安全所關(guān)心的事。不過(guò),因?yàn)槲募峁┝艘环N如此簡(jiǎn)單的到服務(wù)器的路徑,所以值得在這里提一下。

代碼注入

通常情況下,可以通過(guò)相應(yīng)頭來(lái)辨別服務(wù)器操作系統(tǒng),正如我們?cè)?.6節(jié)中所討論的。特別是在一些Unix或Linux文件系統(tǒng)重,文件名可以包含特殊字符,比如斜線(xiàn)號(hào)、管道符號(hào)和引號(hào)。例5-5中顯示了使用Mac OS X和與之關(guān)聯(lián)的HFS文件系統(tǒng)時(shí)的一些不常見(jiàn)和可能存在危險(xiǎn)的文件名。相反,如果頭信息揭露了應(yīng)用框架或語(yǔ)言,那么你可以嘗試一下這種語(yǔ)言的特殊符號(hào)。在上傳文件名中包含這些特殊字符的文件時(shí),如果應(yīng)用不自動(dòng)地將這些特殊字符轉(zhuǎn)義或者替換掉,那么你的應(yīng)用就可能存在危險(xiǎn)。請(qǐng)對(duì)這些特殊字符進(jìn)行實(shí)驗(yàn)——如果你可以讓?xiě)?yīng)用崩潰護(hù)著表現(xiàn)出不正確的行為,那么進(jìn)一步的操縱很可能足以充分利用你的服務(wù)器或應(yīng)用。

例5-5:一些包含特殊字符的文件名

基于Unix或Linux的服務(wù)器的一個(gè)普通例子是文件名| 1s -al。如果未經(jīng)轉(zhuǎn)義或重命名就上傳,那么嘗試打開(kāi)這個(gè)文件的服務(wù)器腳本可能反而會(huì)返回該目錄的內(nèi)容(類(lèi)似于DOS中的dir命令)。存在要壞的多的攻擊,其中包括一些會(huì)在文件系統(tǒng)中刪除或創(chuàng)建文件的攻擊。

對(duì)于那些在不允許文件名中出現(xiàn)特殊字符的操作系統(tǒng)(比如Windows)中進(jìn)行的測(cè)試而言,要記住,即使你無(wú)法再磁盤(pán)上以特殊字符作為文件名來(lái)保存文件,在你上傳文件的時(shí)候是可以更改文件名。

跨站式腳本。即使代碼注入不可能實(shí)現(xiàn),如果文件名沒(méi)用被正確地轉(zhuǎn)義處理,跨站式腳本將仍然是個(gè)潛在的問(wèn)題。在保存到磁盤(pán)之前,所有文件名都需要進(jìn)行轉(zhuǎn)義處理或編碼成HTML特殊字符。最好能將整個(gè)文件名替換為一個(gè)唯一的標(biāo)識(shí)符。

如果將原始的,未經(jīng)更改的文件名發(fā)送到瀏覽器,那么下面的HTML輸出可能會(huì)由<IMGSRC='' onerrror='alert('XSS')'變成<IMG SRC='' onerrror='alert( 'XSS')' a='jpg'/>。這是非常簡(jiǎn)單的JavaScript注入的一個(gè)極好的例子,而JavaScript注入是實(shí)現(xiàn)跨站式腳本攻擊的一種重要方法。

SQL注入。代碼注入攻擊的是運(yùn)行應(yīng)用的服務(wù)器或語(yǔ)言,跨站式腳本的目標(biāo)是瀏覽器,而SQL注入則集中在惡意訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。如果上傳的文件存儲(chǔ)在數(shù)據(jù)庫(kù)中,而不是作為服務(wù)器上的文件,那么你應(yīng)該測(cè)試的領(lǐng)域是SQL注入,而不是代碼注入。

SQL注入所需要的最常見(jiàn)的特殊字符是單引號(hào)。試著在文件名中添加單引號(hào),看看在文件被保存到數(shù)據(jù)庫(kù)時(shí)會(huì)發(fā)生什么。如果你的應(yīng)用返回錯(cuò)誤,那么很可能它容易遭受SQL注入攻擊。

警告:上傳和處理文件這種行為為文件名之外的其他安全問(wèn)題做好了準(zhǔn)備。所有以這種方式上傳的文件都是應(yīng)用的輸入,應(yīng)該像HTTP驅(qū)動(dòng)的輸入那樣進(jìn)行全面細(xì)致的測(cè)試。每種文件格式都需要根據(jù)這種格式應(yīng)有的內(nèi)容進(jìn)行測(cè)試,不過(guò)我們可以就與文件內(nèi)容有關(guān)的風(fēng)險(xiǎn)給出一份簡(jiǎn)要匯總。在將這些文件存儲(chǔ)到你的計(jì)算機(jī)上時(shí),要當(dāng)心。你可能會(huì)引起防病毒軟件的古怪行為,凍結(jié)你的計(jì)算機(jī),或者違反公司政策。要小心!


軟件測(cè)試 | web測(cè)試—上傳帶有惡意文件名的文件的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
九龙县| 河间市| 巴楚县| 南郑县| 五指山市| 静乐县| 偃师市| 五指山市| 修水县| 盐源县| 施秉县| 蚌埠市| 龙川县| 五台县| 博罗县| 遂川县| 山阴县| 兴仁县| 盐亭县| 贵德县| 长沙市| 修文县| 乐平市| 厦门市| 平度市| 武清区| 北辰区| 徐州市| 武威市| 招远市| 盐城市| 绥阳县| 郎溪县| 梁平县| 磐安县| 赤壁市| 黔南| 辽源市| 丁青县| 张北县| 高淳县|