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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

跨站脚本(XSS)漏洞 (一)

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 跨站脚本(XSS)漏洞 (一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

跨站腳本(XSS)漏洞

跨站腳本漏洞概述

Cross-Site Scripting 簡稱為“CSS”,為避免與前端疊成樣式表的縮寫"CSS"沖突,故又稱XSS。一般XSS可以分為如下幾種常見類型:
1.反射性XSS;
2.存儲型XSS;
3.DOM型XSS;

XSS漏洞一直被評估為web漏洞中危害比較大的漏洞,在OWASP TOP10的排名中一直屬于前三的江湖地位。

XSS是一種發生在Web前端的漏洞,所以其危害的對象也主要是前端用戶。

形成XSS漏洞的主要原因是程序對輸入和輸出沒有做合適的處理,導致“精心構造”的字符輸出在前端時被瀏覽器當作有效代碼解析執行從而產生危害。

因此在XSS漏洞的防范上,一般會采用“對輸入進行過濾”和“輸出進行轉義”的方式進行處理:
輸入過濾:對輸入進行過濾,不允許可能導致XSS攻擊的字符輸入;
輸出轉義:根據輸出點的位置對輸出到前端的內容進行適當轉義;

XSS漏洞可以用來進行釣魚攻擊、前端js挖礦、用戶cookie獲取。甚至可以結合瀏覽器自身的漏洞對用戶主機進行遠程控制等。

跨站腳本漏洞概述-XSS(竊取cookie)攻擊流程

跨站腳本漏洞常見類型

危害:存儲型>反射型>DOM型

反射型

交互的數據一般不會被存在數據庫里面,一次性,所見即所得,一般出現在查詢類頁面等。

存儲型

交互的數據會被存在數據庫里面,永久性存儲,一般出現在留言板,注冊等頁面。造成持久性損害

DOM型

不與后臺服務器產生數據交互,是一種通過DOM操作前端代碼輸出的時候參生的問題,一次性也屬于 反射型。

XSS漏洞形成原因

跨站腳本漏洞測試流程

當我們去找一個目標站點上面是否存在xss漏洞的時候,我們一般會按照什么思路去進行xss漏洞的手動挖掘?
① 在目標站點上找到輸入點,比如查詢接口,留言板等;
②輸入一組“特殊字符(比如尖括號、單引號雙引號等)+唯一識別字符”,點擊提交后,查看返回的源碼,是否有做對應的處理;
③通過搜索定位到唯一字符,結合唯一字符前后語法確認是否可以構造執行js的條件(構造閉合);
④提交構造的腳本代碼(以及各種繞過姿勢),看是否可以成功執行,如果成功執行則說明存在XSS漏洞;

TIPS:
①一般查詢接口容易出現反射型XSS,留言板容易出現存儲型XSS;
②由于后臺可能存在過濾措施,構造的script可能會被過濾掉,而無法生效,或者環境限制了執行(瀏覽器);
③通過變化不同的script,嘗試繞過后臺過濾機制;

XSS實驗演示

實驗環境:
測試目標:pikachu–xss
測試工具:Firefox+瀏覽器開發者工具(Chrome安全措施比較嚴格)

從一個反射型的XSS(get)彈窗開始認識XSS漏洞




按照剛剛的思路,去查看一下頁面源代碼:
然后ctrl+F輸入6666,可以找到輸出點,可以看到’"<>6666被輸出在p標簽里面,也就意味 著,我們輸入的特殊字符又原封不動的輸出到p標簽,是不是意味著,我們在找個地方輸入一些正確的js代碼,它也會原封不動的返回回來呢?

<script>alert('xss')<script>

當在輸入框輸不了那么長的字符,可以通過F12——》選擇元素進行修改

因為是反射型的xss,按照剛剛的邏輯,刷新過后源碼中的alert就沒了,不會彈窗。

反射型跨站腳本漏洞之get&post

GET方式的XSS漏洞更加容易被利用,一般利用的方式是將帶有跨站腳本的URL偽裝后發送給目標而POST方式由于是以表單方式提交,無法直接使用URL方式進行攻擊,如何利用?

GET和POST典型區別:
GET是以url方式提交數據;
POST是以表單方式在請求體里面提交。

存儲型xss和DOM型XSS的解析

存儲型XSS漏洞

存儲型XSS漏洞跟反射型形成的原因一樣,不同的是存儲型xss下攻擊者可以將腳本注入到后臺存儲起來,構成更加持久的危害。因此存儲型XSS也稱為“永久型”XSS。

存儲型XSS漏洞演示


輸入’"<>?&66666試試看

查看網頁源代碼

在留言板上輸入

<script>alert('xss')</script>


每次刷新的時候都會彈出彈框,因為剛剛這個留言已經被存到數據庫里面了,每次去訪問這個頁面的時候,都會從數據庫里面把這個留言加載出來觸發js腳本的運行。

DOM型XSS


HTML DOM教程:https://www.w3school.com.cn/htmldom/index.asp

DOM型XSS漏洞演示

DOM是純前端的


通過構造閉合,去執行我們預期的代碼。

<a href='#'onclick="alert(111)">'>what do you see?</a>

構造了一個payload:

#'onclick="alert(111)">




構造閉合

<a href='"+xss+"'>就讓往事都隨風,都隨風吧</a>

構造了一個payload:

#'onclick="alert(111)">


這其實跟反射型xss一樣,只需要把下面這段URL發送給需要攻擊的用戶,它只要打開這個鏈接,我們構造的js代碼就會被插入到用戶的頁面里面去

http://127.0.0.1/pikachu/vul/xss/xss_dom_x.php?text=%23%27onclick%3D%22alert%28111%29%22%3E#

總結

以上是生活随笔為你收集整理的跨站脚本(XSS)漏洞 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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