日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web安全之XSS漏洞

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web安全之XSS漏洞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

同源策略

同源策略(Same-Origin Policy),就是為了保證互聯網之中,各類資源的安全性而誕生的產物,它實際上是一個眾多瀏覽器廠商共同遵守的約定。同源策略是瀏覽器中最基本的安全功能。缺少同源策略,很多瀏覽器的常規功能都會受到影響,可以說Web是構建在同源策略基礎之上的。

如果Web世界沒有同源策略,當你登錄FreeBuf賬號并打開另一個站點時,這個站點上的JavaScript可以跨域讀取你的FreeBuf賬號數據,這樣的話整個WEB世界就沒有 隱私而言。

瀏覽器的同源策略,限制了不同源的“document”或是腳本,對當前“document”或資源及其屬性的讀寫權限。

同源策略是一種安全思想,但并不是統一的規范體系。不同語言腳本以及插件,它們的同源策略規則也不盡相同,不可一概而論。

javaScript中的同源,需要對比 兩者中的協議、域名、端口。三者完全相同才認為是同源的,否則即是來自不同源的內容。

在HTML語言中,有部分標簽在引用第三方資源時,不受同源策略的限制:

上述這種帶src屬性的標簽,在加載時,實際是生成一條GET請求,向指定服務器申請資源。

前言

跨站腳本攻擊(Cross Site Scripting)的縮寫,為了不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。

  • 跨站: 從字面來分析,因為這個“跨”實際上是瀏覽器的特性,而不是缺陷,造成“跨”這樣的假象是因為絕大多數XSS攻擊都會采用嵌入一段遠程或者第三方域上的腳本資源。
  • 腳本: 跨站腳本重點已經不在“跨站”這個字母上,而是“腳本”。腳本主要是有兩個:JavaScript和ActionScript。

XSS的原理
用戶提交的數據沒有過濾,或者過濾不嚴格,輸出到網頁中 ,導致可以構造執行JS代碼,或者修改網頁內容。

XSS的危害
XSS沒有危害,很少有人去關注它。對于那些半年沒有更新的小企業網站來說,發生XSS漏洞幾乎沒有什么用。但是在各類的社交平臺,郵件系統,開源流行的Web應用,BBS,微博等場景中,造成的殺傷力卻十分強大。

場景十分重要

XSS的危害

  • 盜取用戶或者管理員的Cookie
  • XSS Worm
  • 掛馬(水坑攻擊)
  • 有局限性的鍵盤記錄

XSS的分類

  • 反射型XSS
  • 存儲型XSS
  • DOM XSS
  • Flash XSS

反射型XSS

反射型XSS又稱為非持久型XSS。XSS代碼出現在URL參數或者請求中,瀏覽器發出請求時,參數值作為輸入提交到服務器,服
務器接受處理后參數值出現在響應的HTML中,最后瀏覽器解析執行了這段XSS代碼。

反射型XSS利用過程

  • 惡意的攻擊者發給受害者一個鏈接(鏈接中攜帶xss代碼)
  • 攻擊者誘使受害者點開這個鏈接
  • XSS代碼被提交到有XSS漏洞的Web應用程序上
  • WEB應用程序沒有過濾提交上來的數據,或者過濾不嚴格。
  • WEB應用程序輸出用戶提交上來的數據(包含XSS代碼)。
  • 用戶瀏覽器渲染返回的HTML頁面,執行返回的JavaScript代碼
  • 惡意的javascript代碼在后臺悄悄執行,獲取用戶信息
  • 存儲型XSS

    存儲型XSS,又稱持久型XSS,他和反射型XSS最大的不同就是,攻擊腳本將被永久地存放在目標服務器的數據庫或文件中。

  • 惡意的攻擊者讓存在XSS漏洞的網站提交一段XSS代碼
  • Web應用程序接受提交數據,沒有過濾或者過濾不嚴格
  • 寫入到數據庫中或者是文件中
  • 受害者訪問這個存在XSS惡意代碼的頁面時
  • Web應用程序從數據庫讀取之前惡意攻擊者提交的數據
  • Web應用服務器返回這段數據
  • 受害者瀏覽器渲染返回的HTML頁面,執行返回的JavaScript代碼
  • 惡意的javascript代碼在后臺悄悄執行,獲取用戶信息。
  • DOM XSS

    DOM XSS與反射型XSS和存儲型XSS的差別是在于DOM XSS的代碼不需要服務器解析響應的直接參與,觸發XSS靠的是瀏覽器DOM解析器的解析,可以完全認為是客戶端的事情。

    Flash XSS

    利用的是網頁上flash文件缺陷來執行js腳本,一般是反射型xss

    XSS手動挖掘

    • 看URL參數輸出的位置
    • 看輸入框輸出位置

    輸出點位置

  • 輸出在標簽外
    需要可以構造標簽,如果不能構造標簽就不存在XSS漏洞。

  • 輸出到標簽中
    如果輸出在"雙引號或者’單引號內部,需要能夠閉合引號,如果不能閉合引號,就需要看能否在當前的標簽屬性中執行js代碼,如果不能,就不存在XSS漏洞。
    如果沒有輸出在"雙引號或者’單引號內部,或者可以閉合引號,可以構造一個新的屬性,使用新的屬性的值來執行JS代碼,比如事件屬性。

  • 輸出到Script標簽中

    • 如果輸出在"雙引號或者’單引號內部,需要能夠閉合引號,
    • 如果不能閉合引號,需要看當前變量能不能innerHTML或者document.write,插入到網頁中,如果可以就可以構造XSS,如果沒有,就不存在XSS(引號內部可以使用unicode編碼, < 不能編碼)
    • 如果輸出"雙引號或者’單引號內部,需要能夠閉合引號,如果可以閉合引號,就可以直接傳遞進去js代碼,使用注釋符號,注釋掉后面的js代碼就可以構造XSS

    XSS防御

    • 對XSS的防御需要根據實際情況對用戶的輸入進行嚴格的過濾。基于過濾的XSS防御方式通常可分為兩種:基于黑名單的過濾和基于白名單的過濾。后者的防御效果往往更好,對于用戶在白名單之外的輸入,可以直接忽略。在構造白名單的過程中需要保證在不影響用戶體驗的同時,盡可能杜絕一切不必要的輸入內容。
    • 在cookie中加入httponly屬性可以在一定程度上保護用戶的cookie,減少出現XSS時損失
    • (1,apache2.2.x;2.注冊網站,把攻擊者自己的加了httponly的cookie復制過去,補全信息)
    • Flash XSS的修復需要對相應的flash進行修改或升級替換。

    總結

    以上是生活随笔為你收集整理的Web安全之XSS漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。