| 注:轉(zhuǎn)載請(qǐng)注明出自:https://blog.csdn.net/qq_36711453/article/details/83745195 XSS跨站腳本攻擊:兩種情況。一種通過(guò)外部輸入然后直接在瀏覽器端觸發(fā),即反射型XSS;還有一種則是先把利用代碼保存在數(shù)據(jù)庫(kù)或文件中,當(dāng)web程序讀取利用代碼并輸出在頁(yè)面上時(shí)觸發(fā)漏洞,即存儲(chǔ)型XSS。DOM型XSS是一種特殊的反射型XSS。 危害:前端頁(yè)面能做的事它都能做。(不僅僅盜取cookie、修改頁(yè)面等) 1、 挖掘經(jīng)驗(yàn)XSS挖掘的關(guān)鍵在于尋找有沒(méi)有被過(guò)濾的參數(shù),且這些參數(shù)傳入到輸出函數(shù)。 常用輸出函數(shù):print、print_r、echo、printf、sprintf、die、var_dump、var_export,所以只要尋找?guī)в凶兞康倪@些函數(shù)即可。 XSS漏洞挖掘受瀏覽器影響比較大,最重要的還要掌握各種瀏覽器容錯(cuò)、編碼等特性和數(shù)據(jù)協(xié)議。 常出現(xiàn)場(chǎng)景:文章發(fā)表、評(píng)論、留言、注冊(cè)資料的地方、修改資料的地方等; 2、 反射型XSS黑盒測(cè)試時(shí):只需要將尖括號(hào)、單雙引號(hào)等提交到web服務(wù)器,檢查返回的html頁(yè)面里面有沒(méi)有保留原來(lái)的特殊字符即可判斷; 白盒測(cè)試時(shí):只需尋找?guī)в袇?shù)的輸出函數(shù),然后根據(jù)輸出函數(shù)對(duì)輸出的內(nèi)容回溯輸入?yún)?shù),觀察有沒(méi)有過(guò)濾; 例如: 代碼中:oauth_signature 參數(shù)未經(jīng)任何過(guò)濾,直接輸出,則可以直接用GET方式注入代碼。 3、 存儲(chǔ)型XSS就是需要先把利用代碼保存在例如數(shù)據(jù)庫(kù)或文件中,當(dāng)web 應(yīng)用程序讀取利用代碼并輸出在頁(yè)面上時(shí)執(zhí)行利用代碼,原理圖流程如下: 存儲(chǔ)型XSS比反射型要容易利用的多,不用考慮繞過(guò)瀏覽器的過(guò)濾,在隱蔽性上也要好得多。特別在社交網(wǎng)絡(luò)中的存儲(chǔ)型XSS蠕蟲(chóng)能造成大面積的傳播,影響非常大。 挖掘存儲(chǔ)型XSS:尋找未過(guò)濾的輸入點(diǎn)和未過(guò)濾的輸出函數(shù),這個(gè)最終的輸出點(diǎn)可能和輸入點(diǎn)完全不在一個(gè)業(yè)務(wù)流上,對(duì)于這類可以根據(jù)當(dāng)前代碼功能去猜測(cè),或追蹤哪里有操作過(guò)這個(gè)數(shù)據(jù),使用表名、字段名去代碼里面搜索。 4、 漏洞防范(1) 特殊字符HTML實(shí)體轉(zhuǎn)碼。最好的過(guò)濾方式是在輸出和二次調(diào)用的時(shí)候進(jìn)行加HTML實(shí)體一類的轉(zhuǎn)碼,防止腳本注入。 (2) 標(biāo)簽事件屬性黑名單。特殊字符容易被繞過(guò),所以還得加標(biāo)簽事件得黑名單或者白名單,這里推薦使用白名單的方式,實(shí)現(xiàn)規(guī)則可以直接使用正則表達(dá)式來(lái)匹配,如果匹配到的事件不在白名單列表,就可以直接攔截,而不是過(guò)濾為空。 
 | 
|  | 
來(lái)自: 三十的狼 > 《系統(tǒng)安全漏洞》