您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么分析反射型XSS,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
反射型 XSS 是指應用程序通過 Web 請求獲取不可信賴的數據,在未檢驗數據是否存在惡意代碼的情況下,便將其傳送給了 Web 用戶。反射型 XSS 一般由攻擊者構造帶有惡意代碼參數的 URL,當 URL 地址被打開時,特有的惡意代碼參數被 HTML 解析、執行,它的特點是非持久化,必須用戶點擊帶有特定參數的鏈接才能引起。小編以 JAVA 語言源代碼為例,分析 CWE ID 80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)
當用戶訪問一個帶有 XSS 代碼的 URL 請求時,服務器端接收數據后處理,然后把帶有 XSS 代碼的數據發送到瀏覽器,瀏覽器解析這段帶有XSS代碼的數據后,造成 XSS 漏洞,可能導致竊取目標網站的 Cookie 到攻擊者的服務器上,讀取用戶未公開的資料或Click劫持實施釣魚攻擊等。從2018年1月至11月,CVE 中共有126條漏洞信息與其相關。部分漏洞如下:
CVE | 漏洞概述 |
---|---|
CVE-2018-19091 | tianti 是一款使用 Java 編寫的免費的輕量級 CMS 系統,目前提供了從后臺管理到前端展現的整體解決方案。其中 tianti 2.3 通過 tianti-module-admin / user /list userName 參數在用戶管理模塊中存在反射型 XSS 漏洞。 |
CVE-2018-14929 | Matera Banco 1.0.0 容易受到多個反射型 XSS 的影響,正如 /contingency/web/index.jsp(又名主頁)url 參數所示。 |
CVE-2018-12996 | ZohoManageEngine Applications Manager 提供了監視和管理 J2EE 底層結構、J2EE應用的解決方案。在 Zoho ManageEngine Applications Manager 13(Build13800)中反射型跨站腳本(XSS)漏洞允許遠程攻擊者通過參數 'method' 向GraphicalView.do 注入任意 Web 腳本或 HTML。 |
CVE-2018-12090 | LAMS 是由澳大利亞 Macquarie 大學,LAMS 國際有限公司和 LAMS 基金會聯合開發出來的一個基于 JAVA 的新一代學習軟件。在 3.1 之前的 LAMS 中存在未經身份驗證的反射型跨站腳本(XSS),允許遠程攻擊者在 forgetPasswordChange.jsp?key = 密碼更改期間通過操作未經過規范的 GET 參數來引入任意 JavaScript。 |
示例源于Samate Juliet Test Suite for Java v1.3 (https://samate.nist.gov/SARD/testsuite.php),源文件名:CWE80_XSS__CWE182_Servlet_URLConnection_03.java。
上述示例代碼操作是獲取用戶的年齡,在第40行創建連接對象,在第44行創建輸入流獲得urlConnection
對象響應的內容,在第52行從緩沖流中讀取一行數據,在第100行中,將獲得的數據去除所有的<script>
標簽并向頁面輸出處理后的數據,即使過濾了<script>
標簽,但仍然可以使用其他html
標簽,在這里構造了惡意的url
,但網站未做防護時,頁面會讀取到document.cookie
的內容并輸入到頁面。這樣就造成了反射型 XSS。
使用360代碼衛士對上述示例代碼進行檢測,可以檢出“反射型XSS”缺陷,顯示等級為高。從跟蹤路徑中可以分析出數據的污染源以及數據流向,在代碼行第100行報出缺陷,如圖1所示:
圖1:反射型 XSS 檢測示例
在上述修復代碼中,由于頁面輸出的內容為用戶的年齡,在第96行,對響應的內容轉換為數字,這樣就過濾了其它 html 的字符,即使存在字符,代碼會報出異常,并不會造成反射型 XSS 的發生。
使用360代碼衛士對修復后的代碼進行檢測,可以看到已不存在“反射型XSS”缺陷。如圖2:
圖2:修復后檢測結果
要避免反射型 XSS,需要注意以下幾點:
(1) 對用戶的輸入進行合理驗證(如年齡只能是數字),對特殊字符(如 <、>、'、"等)以及<script>
、javascript
等進行過濾。
(2) 根據數據將要置于 HTML 上下文中的不同位置(HTML 標簽、HTML 屬性、JavaScript 腳本、CSS、URL),對所有不可信數據進行恰當的輸出編碼。
(3) 設置HttpOnly
屬性,避免攻擊者利用XSS
漏洞進行Cookie
劫持攻擊。在 JavaEE 中,給Cookie
添加HttpOnly
的代碼如下:
看完上述內容,你們對怎么分析反射型XSS有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。