什么是XSS
XSS全稱跨站腳本(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故縮寫為XSS,比較合適的方式應(yīng)該叫做跨站腳本攻擊。
跨站腳本攻擊是一種常見的web安全漏洞,它主要是指攻擊者可以在頁面中插入惡意腳本代碼,當受害者訪問這些頁面時,瀏覽器會解析并執(zhí)行這些惡意代碼,從而達到竊取用戶身份/釣魚/傳播惡意代碼等行為。

2
什么是Payload
Payload是一個專業(yè)術(shù)語,中文翻譯過來是是有效荷載,可能經(jīng)常會從搞安全的口里說出,那么什么是Payload?什么又是Exp?什么又是PoC?
先介紹PoC,PoC的全稱是Proof of Concept,意思為概念驗證,通俗的可以理解為漏洞驗證腳本;而Exp是Exploit的簡寫,意思為漏洞利用,兩者的區(qū)別即使一個僅限于驗證,而一個是攻擊利用。那么Payload呢?Payload是組成PoC和Exp的必要部分,也可以理解為驗證代碼。
打個比喻,假如某個窗戶存在問題,任何鑰匙都可以開,那么這個比喻為一個漏洞,那么用鑰匙打開窗戶,看下是否可以打開,這是PoC做的事,而打開窗戶后進去偷東西,這是Exp做的事,而那把鑰匙就可以理解為Payload,Payload不區(qū)分是否攻擊利用。

3
XSS是如何產(chǎn)生的
我們經(jīng)常也會聽到一個詞:注入點,指的是黑客可控內(nèi)容的提交位置,比如網(wǎng)站里面的搜索框,黑客可以控制輸入的內(nèi)容,然后進行提交,那么實際在測試漏洞的時候,就可以把注入點的內(nèi)容替換為Payload進行驗證。而XSS或者說Web漏洞是怎么產(chǎn)生的呢?那就是對方輸入了非預(yù)期的內(nèi)容,而你卻信任了他。即對非預(yù)期輸入的信任!
安全的本質(zhì)是信任的問題,在正常設(shè)想中,搜索框的設(shè)置對于開發(fā)者來說,理論上應(yīng)該輸入的是正常的字符串,進行搜索,這是一種對輸入的信任,并且這種信任對于開發(fā)者來說是有預(yù)期的,在他的預(yù)期里輸入是正常的字符串,而漏洞的產(chǎn)生就在于出現(xiàn)了非預(yù)期的情況,而開發(fā)者并沒有針對性的做處理。于是,XSS漏洞就產(chǎn)生了!
