三、因設(shè)置或設(shè)計(jì)上的缺陷引發(fā)的安全漏洞
指的是錯(cuò)誤設(shè)置Web服務(wù)器,或是由設(shè)計(jì)上的一些問(wèn)題引起的安全漏洞。
(一)強(qiáng)制瀏覽
強(qiáng)制瀏覽安全漏洞是指,從安置在Web服務(wù)器的公開(kāi)目錄下的文件中,瀏覽那些原本非自愿公開(kāi)的文件。
對(duì)那些原本不愿公開(kāi)的文件,為了保證安全會(huì)隱蔽其URL。可一旦知道了那些URL,也就意味著可瀏覽URL對(duì)應(yīng)的文件。

即使沒(méi)有對(duì)這篇日記的訪問(wèn)權(quán)限,只要知道這圖片的URL,通過(guò)直接指定URL的方式就能顯示該圖片。日記的功能和文本具有訪問(wèn)對(duì)象的控制,但不具備對(duì)圖片訪問(wèn)對(duì)象的控制,從而產(chǎn)生了安全漏洞。
(二)不正確的錯(cuò)誤消息處理
Web應(yīng)用的錯(cuò)誤信息內(nèi)包含對(duì)攻擊者有用的信息。
Web應(yīng)用不必在用戶的瀏覽畫面上展現(xiàn)詳細(xì)的錯(cuò)誤消息。對(duì)攻擊者來(lái)說(shuō),詳細(xì)的錯(cuò)誤消息有可能給他們下一次攻擊以提示。

上方畫面提示 “郵件地址未注冊(cè)” 的錯(cuò)誤消息。當(dāng)輸入的郵件地址尚未在該 Web 網(wǎng)站上注冊(cè)時(shí),就會(huì)觸發(fā)這條錯(cuò)誤消息。因?yàn)樘热羿]件地址存在,應(yīng)該會(huì)提示“輸入的密碼有誤”之類的錯(cuò)誤消息。
攻擊者利用進(jìn)行不同的輸入會(huì)提示不同的錯(cuò)誤信息這條,就可用來(lái)確認(rèn)輸入的郵件地址是否已在這個(gè)Web網(wǎng)站上注冊(cè)過(guò)了。
為了不讓錯(cuò)誤消息給攻擊者以啟發(fā),建議將提示消息的內(nèi)容僅保留到 “認(rèn)證錯(cuò)誤” 這種程度即可。
(三)開(kāi)放重定向
開(kāi)放重定向,是一種對(duì)指定的任意 URL 作重定向跳轉(zhuǎn)的功能。而與此功能相關(guān)聯(lián)的安全漏洞是指,假如指定的重定向 URL 到某個(gè)具有惡意的Web網(wǎng)站,那么用戶就會(huì)被誘導(dǎo)至那個(gè)Web網(wǎng)站。
案例:向URL指定參數(shù)后,使本來(lái)的URL發(fā)生重定向跳轉(zhuǎn)
http://example.com/?redirect=http://www.tricorder.jp
攻擊者把重定向指定的參數(shù)改寫成已設(shè)好陷阱的Web網(wǎng)站對(duì)應(yīng)的連接
http://example.com/?redirect=http://hackr.jp
四、因會(huì)話管理疏忽引發(fā)的安全漏洞
會(huì)話管理是用來(lái)管理用戶狀態(tài)的必備功能
(一)會(huì)話劫持
會(huì)話劫持?是指:攻擊者通過(guò)某種手段拿到了用戶的會(huì)話ID,并非法使用此會(huì)話ID偽裝成用戶,達(dá)到攻擊的目的。
會(huì)話劫持是竊取目標(biāo)會(huì)話ID,為主動(dòng)攻擊手段。

具備認(rèn)證功能的Web應(yīng)用,使用會(huì)話ID的會(huì)話管理機(jī)制,作為管理認(rèn)證狀態(tài)的主流方式。會(huì)話ID中記錄客戶端的Cookie等信息,服務(wù)器端將會(huì)話ID與認(rèn)證狀態(tài)進(jìn)行一對(duì)一匹配管理。
幾種攻擊者可獲得會(huì)話ID的途徑:
? ? ? ? ● 通過(guò)非正規(guī)的生成方法推測(cè)會(huì)話 ID
? ? ? ? ● 通過(guò)竊聽(tīng)或 XSS 攻擊盜取會(huì)話 ID
? ? ? ? ● 通過(guò)會(huì)話固定攻擊強(qiáng)行獲取會(huì)話 ID
(二)會(huì)話固定攻擊
會(huì)話固定攻擊會(huì)強(qiáng)制用戶使用攻擊者指定的會(huì)話ID,屬于被動(dòng)攻擊。
案例:這個(gè)Web網(wǎng)站的認(rèn)證功能,會(huì)在認(rèn)證前發(fā)布一個(gè)會(huì)話ID,若認(rèn)證成功,就會(huì)在服務(wù)器內(nèi)改變認(rèn)證狀態(tài)。

(三)跨站點(diǎn)請(qǐng)求偽造(CSRF)
跨站點(diǎn)請(qǐng)求偽造攻擊是指:攻擊者通過(guò)設(shè)置好的陷阱,強(qiáng)制對(duì)已完成認(rèn)證的用戶進(jìn)行非預(yù)期的個(gè)人信息或設(shè)定信息等某些狀態(tài)更新,屬于被動(dòng)攻擊。
有可能會(huì)造成以下等影響:
? ? ? ? ●利用已通過(guò)認(rèn)證的用戶權(quán)限更新設(shè)定信息等
? ? ? ? ●利用已通過(guò)認(rèn)證的用戶權(quán)限購(gòu)買商品
? ? ? ? ●利用已通過(guò)認(rèn)證的用戶權(quán)限在留言板上發(fā)表言論
案例:留言板功能,只允許已認(rèn)證并登錄的用戶在留言板上發(fā)表內(nèi)容。

用戶A是已認(rèn)證狀態(tài),攻擊者設(shè)置好一旦用戶訪問(wèn),即會(huì)發(fā)送在留言板上發(fā)表非主觀行為產(chǎn)生的評(píng)論的請(qǐng)求的陷阱。用戶A的瀏覽器執(zhí)行完陷阱中的請(qǐng)求后,留言板上也就會(huì)留下那條評(píng)論。
如果用戶A尚未通過(guò)認(rèn)證,則無(wú)法利用用戶A的身份權(quán)限在留言板上發(fā)表內(nèi)容。