跨站腳本攻擊 – XSS

跨站腳本 (XSS) 是一種常見於 Web 應用程序中的安全漏洞。它是一種注入,允許攻擊者執行惡意腳本並使其在受害者機器上執行。

如果 Web 應用程序使用未經處理的用戶輸入,則它容易受到 XSS 的攻擊。XSS 在 Javascript、VBScript、Flash 和 CSS 中是可能的。

此漏洞的嚴重程度取決於 XSS 的類型,通常分為兩類:持久/存儲和反射。根據具體情況,以下攻擊是可能的:

  • Cookie 竊取 – 從經過身份驗證的會話中竊取您的 cookie,允許攻擊者以您的身份登錄,而無需他們 提供身份驗證。
  • 鍵盤記錄 – 攻擊者可以註冊鍵盤事件偵聽器並將您的所有擊鍵發送到他們自己的服務器。
  • 網絡攝像頭快照 – 使用 HTML5 功能甚至可以從受感染的計算機網絡攝像頭拍攝快照。
  • 網絡釣魚 – 攻擊者可以將偽造的登錄表單插入頁面,或者讓您重定向到一個站點的克隆,誘使您洩露您的敏感數據。
  •  端口掃描 – 你沒看錯。您可以使用存儲的 XSS 掃描內部網絡並識別其網絡上的其他主機。
  • 其他基於瀏覽器的漏洞利用 – XSS 有數百萬種可能性。

誰知道這一切都可以通過訪問網頁來實現。有一些措施可以防止您的瀏覽器和防病毒軟件發生這種情況。

這個房間將解釋不同類型的跨站點腳本、攻擊並要求您解決一路上的挑戰。

儲存型XSS

一個攻擊者創建在一個領域簽署了存儲在網站數據庫中的網站時,有效載荷。 如果網站沒有正確清理 該字段,當網站在頁面上顯示該字段時,它將向訪問它的每個人執行有效負載。

有效載荷可能很簡單 <script>alert(1)</script>

反射型XSS

在反射的跨站點腳本攻擊中,惡意負載是受害者對網站的請求的一部分。該網站包含此有效負載以響應用戶。總而言之,攻擊者需要誘使受害者點擊 URL 以執行其惡意負載。

這可能看起來無害,因為它要求受害者發送包含攻擊者有效負載的請求,而用戶不會攻擊自己。但是,攻擊者可以通過電子郵件對用戶進行社交工程,誘使用戶單擊包含其有效負載的精心製作的鏈接。

攻擊者製作一個包含惡意負載的 URL 並將其發送給受害者。受害者被攻擊者誘騙點擊 URL。請求可能是http://example.com/search?keyword=<script>...</script> 

然後,該網站在對用戶的響應中包含來自請求的此惡意負載。受害者瀏覽器將在響應中執行有效負載。腳本收集的數據然後被發送回攻擊者(它可能不一定是從受害者發送的,而是發送到攻擊者然後收集這些數據的另一個網站 – 這可以防止攻擊者直接接收受害者數據)。

DOM XSS

網頁javascript在執行過程中,沒有詳細檢查資料使操作DOM的過程中帶入惡意的指令。

<html>
    You searched for <em><script>...</script></em>
</html
>

var keyword = document.querySelector('#search')
keyword.innerHTML = <script>...</script>


XSS其實非常常見,以下是比較有名的事件:

如何防範XSS

保護方法

有很多方法可以防止 XSS,這裡有 3 種方法可以讓我們的應用程序保持跨站點腳本。

  1. 轉義 – 轉義所有用戶輸入。這意味著您的應用程序收到的任何數據在呈現給您的最終用戶之前都是安全的。通過逃避用戶輸入,網絡時代接收到的數據中的關鍵字符將被防止以任何惡意方式被解釋。例如,您可以禁止< 和 > 字符從被渲染
  2. 驗證輸入 – 這是確保您的應用程序呈現正確數據並防止惡意數據對您的站點、數據庫和用戶造成損害的過程。輸入驗證首先不允許某些字符被提交。
  3. 消毒 – 最後,消毒數據是一種強大的防禦,但不應單獨用於對抗 XSS 攻擊。清理用戶輸入在允許 HTML 標記的站點上特別有用,將不可接受的用戶輸入更改為可接受的格式。例如,您可以將 < 字符清理到 HTML 實體 < 中。

其他漏洞

XSS 經常被忽視,但其影響與其他重大影響漏洞一樣大。通常情況下,它是將多個漏洞串在一起以產生更大/更好的漏洞利用。下面是一些其他有趣的 XSS 相關工具和網站。

以上內容來自:https://tryhackme.com/room/xss

Back To Top
error: 內容被保護 !!