只要應用程式獲取不受信任的資料並將其傳送到用戶端(瀏覽器)而未經驗證,就會發生跨站點指令碼(XSS)。這允許攻擊者在受害者的瀏覽器中執行惡意指令碼,這可能導致使用者對談劫持,破壞網站或將使用者重定向到惡意站點。
下面我們借助一個簡單圖表瞭解這個漏洞的威脅代理,攻擊向量,安全弱點,技術影響和業務影響。
應用程式在構造中使用不受信任的資料而不進行驗證。特殊字元應該被跳脫。
http://www.webpage.org/task/Rule1?query=try
攻擊者將瀏覽器中的查詢引數修改為 -
http://www.webpage.org/task/Rule1?query=<h3>Hello from XSS"</h3>
第1步 - 登入Webgoat並導航到跨站點指令碼(XSS)部分。執行儲存的跨站點指令碼(XSS)攻擊。以下是該場景的快照。
第2步 - 根據場景,我們以使用者名:Tom
和密碼tom
登入,如方案本身所述。點選「檢視個人資料」,進入編輯模式。由於tom
是攻擊者,它將 Javascript 指令碼注入這些編輯框。
<script>
alert("HACKED")
</script>
第3步 - 更新結束後,Tom
會收到一個警告框並顯示 "HACKED"
的訊息,應用程式容易受到攻擊。
第4步 - 現在按照方案,我們需要以jerry(HR)
身份登入並檢查jerry
是否受注入指令碼的影響。
第5步 - 以Jerry
身份登入後,選擇Tom
並單擊"view profile"
,如下所示。
在從Jerry
的賬戶中檢視tome
的個人資料時,也會看到相同的訊息框。
第6步 - 此訊息框只是一個範例,但實際的攻擊者可以執行的不僅僅是顯示訊息框。