05 漏洞發(fā)現(xiàn):識(shí)別跨站腳本(XSS)漏洞

跨站腳本 (XSS) 是Web應(yīng)用中最常見的漏洞之一,這篇文章,我們來討論識(shí)別Web應(yīng)用跨站腳本漏洞的關(guān)鍵點(diǎn)有哪些。

實(shí)踐

登陸到靶機(jī)的DVWA應(yīng)用,然后跳轉(zhuǎn)到** XSS reflected **:

XSS reflected
Paste_Image.png

如上圖,應(yīng)用使用我們輸入的名字“DaoDao”構(gòu)造一個(gè)頁面短語。如果我們輸入的名字是個(gè)由特殊字符組成的字符串會(huì)怎么樣,例如: <'this is the 1st test'>

Paste_Image.png

如圖,我們輸入的任何東西,都會(huì)反映在響應(yīng)里,變成返回的HTML頁面的一部分。現(xiàn)在,我們查看一下,響應(yīng)頁面的源碼,查看下這些信息是如何展現(xiàn)的。

Paste_Image.png

根據(jù)HTML源碼,我們發(fā)現(xiàn),輸出的響應(yīng)中沒有針對(duì)特殊符號(hào)的編碼處理,我們發(fā)送的字符串未經(jīng)任何處理原樣返回到了頁面?!?lt;”和“>”兩個(gè)特殊符號(hào)往往被用來定義HTML標(biāo)簽。這里我們也可以嘗試著把輸入內(nèi)容替換為Javascript腳本。

現(xiàn)在,我們?cè)囋囕斎胂旅孢@個(gè)附帶簡(jiǎn)單腳本的字符串:
DaoDao<script>alert('XSS')</script>

Paste_Image.png

頁面執(zhí)行了我們的腳本,并觸發(fā)了告警彈窗,這就是一個(gè)存在跨站腳本漏洞的頁面。

再次檢查一下頁面的源碼:

Paste_Image.png

我們輸入的內(nèi)容已經(jīng)自然的嵌入了整個(gè)HTML頁面,瀏覽器直接翻譯執(zhí)行了<script>標(biāo)簽中的腳本,彈出了我們剛剛看到的alert彈窗。

總結(jié)

跨站腳本漏洞常出現(xiàn)于沒有在客戶端和服務(wù)端對(duì)輸入數(shù)據(jù)進(jìn)行校驗(yàn)或校驗(yàn)不充分,沒有合理編碼輸出的應(yīng)用中。這類應(yīng)用允許用戶提交HTML代碼中可以使用的代碼。這些非法符號(hào)發(fā)給服務(wù)端后,服務(wù)端沒有合理編碼輸入,例如這里應(yīng)該用“&lt”和“&gt”替換“<”和“>”號(hào),從而防止瀏覽器解析這段代碼。

這些漏洞常常被攻擊者用來修改頁面在客戶端的行為,在受害人不知情的情況下,竊取用戶的私人信息。

為了發(fā)現(xiàn) XSS 漏洞,我們常常參考以下特點(diǎn):

  • 我們?cè)谳斎肟蛱顚懙淖址瓨影l(fā)送到服務(wù)器
  • 特殊字符不會(huì)被編碼或替換的情況
  • 通過查看HTML頁面源碼,我們輸入的數(shù)據(jù),隨頁面響應(yīng)返回后,能夠嵌入HTML并成為整個(gè)頁面的一部分,并能夠被瀏覽器解析

前文我們發(fā)現(xiàn)了一個(gè)反射型XSS漏洞,這意味著我們的腳本在每次我們發(fā)送惡意腳本到服務(wù)器,服務(wù)器返回的時(shí)候就會(huì)執(zhí)行。還有另外一類叫做存儲(chǔ)型跨站腳本攻擊,這類XSS可能不會(huì)在腳本提交后立刻執(zhí)行,但是會(huì)被存儲(chǔ)在服務(wù)器端(很可能會(huì)被存在數(shù)據(jù)庫中),并在每次被終端用戶訪問存儲(chǔ)的數(shù)據(jù)是被觸發(fā)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容