什么是XSS
XSS全稱跨站腳本(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆锤窑,故縮寫為XSS,比較合適的方式應該叫做跨站腳本攻擊嚷炉。
跨站腳本攻擊是一種常見的web安全漏洞渊啰,它主要是指攻擊者可以在頁面中插入惡意腳本代碼,當受害者訪問這些頁面時申屹,瀏覽器會解析并執(zhí)行這些惡意代碼绘证,從而達到竊取用戶身份/釣魚/傳播惡意代碼等行為。
2
什么是Payload
Payload是一個專業(yè)術語哗讥,中文翻譯過來是是有效荷載嚷那,可能經常會從搞安全的口里說出,那么什么是Payload忌栅?什么又是Exp车酣?什么又是PoC曲稼?
先介紹PoC,PoC的全稱是Proof of Concept湖员,意思為概念驗證贫悄,通俗的可以理解為漏洞驗證腳本;而Exp是Exploit的簡寫娘摔,意思為漏洞利用窄坦,兩者的區(qū)別即使一個僅限于驗證,而一個是攻擊利用凳寺。那么Payload呢鸭津?Payload是組成PoC和Exp的必要部分,也可以理解為驗證代碼肠缨。
打個比喻逆趋,假如某個窗戶存在問題,任何鑰匙都可以開晒奕,那么這個比喻為一個漏洞闻书,那么用鑰匙打開窗戶,看下是否可以打開脑慧,這是PoC做的事魄眉,而打開窗戶后進去偷東西,這是Exp做的事闷袒,而那把鑰匙就可以理解為Payload坑律,Payload不區(qū)分是否攻擊利用。
3
XSS是如何產生的
我們經常也會聽到一個詞:注入點囊骤,指的是黑客可控內容的提交位置晃择,比如網站里面的搜索框,黑客可以控制輸入的內容淘捡,然后進行提交藕各,那么實際在測試漏洞的時候池摧,就可以把注入點的內容替換為Payload進行驗證焦除。而XSS或者說Web漏洞是怎么產生的呢?那就是對方輸入了非預期的內容作彤,而你卻信任了他膘魄。即對非預期輸入的信任!
安全的本質是信任的問題竭讳,在正常設想中创葡,搜索框的設置對于開發(fā)者來說,理論上應該輸入的是正常的字符串绢慢,進行搜索灿渴,這是一種對輸入的信任洛波,并且這種信任對于開發(fā)者來說是有預期的,在他的預期里輸入是正常的字符串骚露,而漏洞的產生就在于出現了非預期的情況蹬挤,而開發(fā)者并沒有針對性的做處理。于是棘幸,XSS漏洞就產生了焰扳!