亚洲精品不卡久久久久久_色视频线观看在线 _妽妽夹得我好舒服_国产真人一级a爱做片高潮_亚洲aⅴ无码专区在线观看q

當(dāng)前位置: 首頁 >綜合 > 正文

熱訊:軟件安全知識(shí)之漏洞類別-結(jié)構(gòu)化輸出生成漏洞

2023-05-13 14:24:56 來源:河南等級(jí)保護(hù)測(cè)評(píng)

漏洞類別

結(jié)構(gòu)化輸出生成漏洞

程序通常必須動(dòng)態(tài)構(gòu)造結(jié)構(gòu)化輸出,然后由另一個(gè)程序使用。示例包括:構(gòu)造數(shù)據(jù)庫使用的SQL查詢,或構(gòu)造Web瀏覽器使用的HTML頁面??梢詫⑸山Y(jié)構(gòu)化輸出的代碼視為子組件。輸出的預(yù)期結(jié)構(gòu),以及如何在輸出中使用子組件的輸入,可以被視為該子組件應(yīng)遵守的協(xié)定。例如,當(dāng)提供名稱和密碼作為輸入時(shí),預(yù)期的輸出是一個(gè)SQL查詢,該查詢從用戶中選擇具有給定名稱和密碼的用戶數(shù)據(jù)庫表。


【資料圖】

一種常見的不安全編程實(shí)踐是通過字符串操作來構(gòu)造這種結(jié)構(gòu)化輸出。輸出構(gòu)造為字符串的串聯(lián),其中其中一些字符串是從程序的輸入派生的(直接或間接)。這種做法很危險(xiǎn),因?yàn)樗馆敵鲎址念A(yù)期結(jié)構(gòu)成為隱式的,并且惡意選擇輸入字符串的值可能會(huì)導(dǎo)致程序生成意外的輸出。例如,程序員可以將SQL查詢構(gòu)造為:

query=”select * from users where name=’” + name + ”’” and pw = ’” + password + ”’”

目的是構(gòu)造一個(gè)SQL查詢,用于檢查where子句中的名稱和密碼。但是,如果名稱字符串由攻擊者提供,則攻擊者可以將名稱設(shè)置為“John"--”,這將從查詢中刪除密碼檢查(注意-在SQL中開始注釋)。

結(jié)構(gòu)化輸出生成漏洞是程序構(gòu)造此類意外輸出的錯(cuò)誤。在結(jié)構(gòu)化輸出表示旨在將提供的輸入作為數(shù)據(jù)包含的代碼的情況下,這尤其危險(xiǎn)。然后,惡意選擇的輸入數(shù)據(jù)可能會(huì)以意外的方式影響生成的輸出代碼。這些漏洞也稱為注入漏洞(例如,SQL注入或腳本注入)。名稱“注入”是指利用這些漏洞通常會(huì)提供數(shù)據(jù)輸入,導(dǎo)致結(jié)構(gòu)化輸出包含額外的代碼語句,即利用在輸出中注入意外的新語句。結(jié)構(gòu)化輸出生成漏洞與許多不同類型的結(jié)構(gòu)化輸出相關(guān):

?SQL注入漏洞是一種結(jié)構(gòu)化輸出生成漏洞,其中結(jié)構(gòu)化輸出由SQL代碼組成。這些漏洞與服務(wù)器端Web應(yīng)用程序軟件特別相關(guān),在服務(wù)器端Web應(yīng)用程序軟件中,應(yīng)用程序通常通過部分基于Web表單提供的輸入構(gòu)造查詢來與后端數(shù)據(jù)庫進(jìn)行交互。

?命令注入漏洞是一個(gè)結(jié)構(gòu)化輸出生成漏洞,其中結(jié)構(gòu)化輸出是應(yīng)用程序發(fā)送到操作系統(tǒng)shell的shell命令。

?腳本注入漏洞(有時(shí)也稱為跨站點(diǎn)腳本(XSS)漏洞)是一種結(jié)構(gòu)化輸出生成漏洞,其中結(jié)構(gòu)化輸出是發(fā)送到Web瀏覽器進(jìn)行客戶端執(zhí)行的JavaScript代碼。

此列表絕不是詳盡無遺的。其他例子包括:XPath注入,HTML注入,CSS注入,PostScript注入等等。

有幾個(gè)因素可能導(dǎo)致難以避免結(jié)構(gòu)化輸出生成漏洞:

?結(jié)構(gòu)化輸出可以是支持句法結(jié)構(gòu)明顯不同的子語言的語言。這種問題案例的一個(gè)重要例子是HTML,它支持JavaScript,CSS和SVG等子語言。

?結(jié)構(gòu)化輸出的計(jì)算可以在不同的階段進(jìn)行,一個(gè)階段的輸出被存儲(chǔ),然后作為后續(xù)階段的輸入進(jìn)行檢索。經(jīng)歷多個(gè)階段的結(jié)構(gòu)化輸出生成漏洞有時(shí)稱為存儲(chǔ)注入漏洞,或者更一般地稱為高階注入漏洞。示例包括存儲(chǔ)的XSS和高階SQL注入。

利用結(jié)構(gòu)化輸出生成漏洞的攻擊技術(shù)通常取決于結(jié)構(gòu)化輸出語言的性質(zhì),但已知并記錄了用于利用SQL注入或腳本注入的各種攻擊技術(shù)。

Web和移動(dòng)安全CyBOK知識(shí)區(qū)[2]提供了對(duì)此類攻擊技術(shù)的更詳細(xì)討論。

標(biāo)簽:

返回頂部