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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

跨站腳本(XSS)漏洞

跨站腳本漏洞概述

Cross-Site Scripting 簡(jiǎn)稱(chēng)為“CSS”,為避免與前端疊成樣式表的縮寫(xiě)"CSS"沖突,故又稱(chēng)XSS。一般XSS可以分為如下幾種常見(jiàn)類(lèi)型:
1.反射性XSS;
2.存儲(chǔ)型XSS;
3.DOM型XSS;

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

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

形成XSS漏洞的主要原因是程序?qū)斎牒洼敵鰶](méi)有做合適的處理,導(dǎo)致“精心構(gòu)造”的字符輸出在前端時(shí)被瀏覽器當(dāng)作有效代碼解析執(zhí)行從而產(chǎn)生危害。

因此在XSS漏洞的防范上,一般會(huì)采用“對(duì)輸入進(jìn)行過(guò)濾”和“輸出進(jìn)行轉(zhuǎn)義”的方式進(jìn)行處理:
輸入過(guò)濾:對(duì)輸入進(jìn)行過(guò)濾,不允許可能導(dǎo)致XSS攻擊的字符輸入;
輸出轉(zhuǎn)義:根據(jù)輸出點(diǎn)的位置對(duì)輸出到前端的內(nèi)容進(jìn)行適當(dāng)轉(zhuǎn)義;

XSS漏洞可以用來(lái)進(jìn)行釣魚(yú)攻擊、前端js挖礦、用戶cookie獲取。甚至可以結(jié)合瀏覽器自身的漏洞對(duì)用戶主機(jī)進(jìn)行遠(yuǎn)程控制等。

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

跨站腳本漏洞常見(jiàn)類(lèi)型

危害:存儲(chǔ)型>反射型>DOM型

反射型

交互的數(shù)據(jù)一般不會(huì)被存在數(shù)據(jù)庫(kù)里面,一次性,所見(jiàn)即所得,一般出現(xiàn)在查詢類(lèi)頁(yè)面等。

存儲(chǔ)型

交互的數(shù)據(jù)會(huì)被存在數(shù)據(jù)庫(kù)里面,永久性存儲(chǔ),一般出現(xiàn)在留言板,注冊(cè)等頁(yè)面。造成持久性損害

DOM型

不與后臺(tái)服務(wù)器產(chǎn)生數(shù)據(jù)交互,是一種通過(guò)DOM操作前端代碼輸出的時(shí)候參生的問(wèn)題,一次性也屬于 反射型。

XSS漏洞形成原因

跨站腳本漏洞測(cè)試流程

當(dāng)我們?nèi)フ乙粋€(gè)目標(biāo)站點(diǎn)上面是否存在xss漏洞的時(shí)候,我們一般會(huì)按照什么思路去進(jìn)行xss漏洞的手動(dòng)挖掘?
① 在目標(biāo)站點(diǎn)上找到輸入點(diǎn),比如查詢接口,留言板等;
②輸入一組“特殊字符(比如尖括號(hào)、單引號(hào)雙引號(hào)等)+唯一識(shí)別字符”,點(diǎn)擊提交后,查看返回的源碼,是否有做對(duì)應(yīng)的處理;
③通過(guò)搜索定位到唯一字符,結(jié)合唯一字符前后語(yǔ)法確認(rèn)是否可以構(gòu)造執(zhí)行js的條件(構(gòu)造閉合);
④提交構(gòu)造的腳本代碼(以及各種繞過(guò)姿勢(shì)),看是否可以成功執(zhí)行,如果成功執(zhí)行則說(shuō)明存在XSS漏洞;

TIPS:
①一般查詢接口容易出現(xiàn)反射型XSS,留言板容易出現(xiàn)存儲(chǔ)型XSS;
②由于后臺(tái)可能存在過(guò)濾措施,構(gòu)造的script可能會(huì)被過(guò)濾掉,而無(wú)法生效,或者環(huán)境限制了執(zhí)行(瀏覽器);
③通過(guò)變化不同的script,嘗試?yán)@過(guò)后臺(tái)過(guò)濾機(jī)制;

XSS實(shí)驗(yàn)演示

實(shí)驗(yàn)環(huán)境:
測(cè)試目標(biāo):pikachu–xss
測(cè)試工具:Firefox+瀏覽器開(kāi)發(fā)者工具(Chrome安全措施比較嚴(yán)格)

從一個(gè)反射型的XSS(get)彈窗開(kāi)始認(rèn)識(shí)XSS漏洞




按照剛剛的思路,去查看一下頁(yè)面源代碼:
然后ctrl+F輸入6666,可以找到輸出點(diǎn),可以看到’"<>6666被輸出在p標(biāo)簽里面,也就意味 著,我們輸入的特殊字符又原封不動(dòng)的輸出到p標(biāo)簽,是不是意味著,我們?cè)谡覀€(gè)地方輸入一些正確的js代碼,它也會(huì)原封不動(dòng)的返回回來(lái)呢?

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

當(dāng)在輸入框輸不了那么長(zhǎng)的字符,可以通過(guò)F12——》選擇元素進(jìn)行修改

因?yàn)槭欠瓷湫偷膞ss,按照剛剛的邏輯,刷新過(guò)后源碼中的alert就沒(méi)了,不會(huì)彈窗。

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

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

GET和POST典型區(qū)別:
GET是以u(píng)rl方式提交數(shù)據(jù);
POST是以表單方式在請(qǐng)求體里面提交。

存儲(chǔ)型xss和DOM型XSS的解析

存儲(chǔ)型XSS漏洞

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

存儲(chǔ)型XSS漏洞演示


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

查看網(wǎng)頁(yè)源代碼

在留言板上輸入

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


每次刷新的時(shí)候都會(huì)彈出彈框,因?yàn)閯倓傔@個(gè)留言已經(jīng)被存到數(shù)據(jù)庫(kù)里面了,每次去訪問(wèn)這個(gè)頁(yè)面的時(shí)候,都會(huì)從數(shù)據(jù)庫(kù)里面把這個(gè)留言加載出來(lái)觸發(fā)js腳本的運(yùn)行。

DOM型XSS


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

DOM型XSS漏洞演示

DOM是純前端的


通過(guò)構(gòu)造閉合,去執(zhí)行我們預(yù)期的代碼。

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

構(gòu)造了一個(gè)payload:

#'onclick="alert(111)">




構(gòu)造閉合

<a href='"+xss+"'>就讓往事都隨風(fēng),都隨風(fēng)吧</a>

構(gòu)造了一個(gè)payload:

#'onclick="alert(111)">


這其實(shí)跟反射型xss一樣,只需要把下面這段URL發(fā)送給需要攻擊的用戶,它只要打開(kāi)這個(gè)鏈接,我們構(gòu)造的js代碼就會(huì)被插入到用戶的頁(yè)面里面去

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

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。