XSS漏洞詳解

Xss漏洞介紹:

Cross-Site Scripting,簡稱為XSS或跨站腳本或者跨站腳本gongji。是一種針對網(wǎng)站或者應(yīng)用程序的漏洞gongji技術(shù),也是利用代碼注入的一種。它允許惡意用戶將代碼注入網(wǎng)頁,其他用戶瀏覽網(wǎng)頁時將會受到影響。
XSS gongji分為三類:反射型,存儲型,DOM型

懷安網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

XSS漏洞原理及利用:

反射型XSS
反射型XSS又稱非持久型XSS,gongji方式僅具有一次性。
gongji方式:gongji者通過包含XSS代碼的惡意鏈接發(fā)送給受害者,當(dāng)受害者訪問該連接時,服務(wù)器接收該受害者用戶的請求并進(jìn)行處理,然后服務(wù)器把帶有XSS代碼的數(shù)據(jù)發(fā)送給受害者用戶的瀏覽器,瀏覽器解析這段包含XSS代碼的惡意腳本,就會觸發(fā)XSS漏洞,完成gongji。
利用
我們用dvwa來展示基礎(chǔ)的XSS利用
XSS漏洞詳解
在輸入框中輸入<script>alert(/xss/)</script>,點擊submit即可彈出
XSS漏洞詳解
存儲型XSS
存儲型XSS又稱持久型XSS,惡意腳本將被永久的保存在服務(wù)器的數(shù)據(jù)庫或者文件中。
gongji方式:多見與論壇,博客以及網(wǎng)站留言板。gongji者在發(fā)帖,留言的過程中,將惡意XSS腳本連同正常信息注入內(nèi)容,隨著帖子,留言板被服務(wù)器存儲下來,惡意XSS腳本也將保存在服務(wù)器中,當(dāng)其他用戶瀏覽帖子或者留言時,惡意XSS腳本會在他們的瀏覽器中執(zhí)行。
利用
XSS漏洞詳解
在message框中輸入<script>alert(/xss/)</script>,點擊sign即可彈出xss
XSS漏洞詳解
此時查看頁面源代碼
XSS漏洞詳解
可以看到我們的惡意代碼成功保存在服務(wù)器上
DOM型XSS
全稱Document Object Model,使用DOM可以使程序和腳本能夠動態(tài)訪問更新文檔的內(nèi)容,結(jié)構(gòu)及樣式。
DOM型XSS是一種特殊類型的反射型XSS,基于DOM文檔對象模型的一種漏洞。
gongji方式:用戶請求一個經(jīng)過專門設(shè)計的鏈接,由gongji者提交且包含惡意XSS代碼,服務(wù)器的響應(yīng)不會以任何形式包含gongji者的腳本,當(dāng)受害者的瀏覽器處理這個響應(yīng)時,DOM對象就會處理XSS惡意代碼。
利用
XSS漏洞詳解
圖中DOM型XSS例子為再輸入框里輸入內(nèi)容點擊替換,會在“這里會顯示輸入的內(nèi)容”替換為輸入的信息
XSS漏洞詳解
我們在輸入框中輸入<img src=1 onerror=alert(/xss/) /> ,點擊替換,即可觸發(fā)XSS
XSS漏洞詳解


##這里為DOM型XSS漏洞源碼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Test</title>
<script type="text/javascript">
function tihuan(){
document.getElementById("id1").innerHTML = document.getElementById("dom_input").value;
}
</script>
</head>
<body>
<center>
<h7 id="id1">這里會顯示輸入的內(nèi)容</h7>
<form action="" method="post">
<input type="text" id="dom_input" value="輸入"><br />
<input type="button" value="替換" onclick="tihuan()">
</form>
<hr>

</center>

</body>
</html>


單擊替換時會執(zhí)行tihuan()函數(shù),而tihuan()函數(shù)是一個DOM操作,通過document,getElementById獲取ID為id1的節(jié)點,然后將節(jié)點id1的內(nèi)容修改成id為dom_input中的值。

XSS常用語句及編碼繞過

XSS常用測試語句
<script>alert(/xss/)</script>
<img src=1 onerror=alert(/xss/) >
<svg onload=alert(/xss/) >
<a href=javascript:alert(/xss/) >
常見的XSS編碼繞過有js編碼,html實體編碼,url編碼
js編碼
js提供了四種字符編碼的策略
三位八進(jìn)制數(shù)字,如果個數(shù)不夠,在前面補(bǔ)0,例如"e"的編碼為"\145"
兩位十六進(jìn)制數(shù)字,如果個數(shù)不夠,在前面補(bǔ)0,例如"e"的編碼為"\x65"
四位十六進(jìn)制數(shù)字,如果個數(shù)不夠,在前面補(bǔ)0,例如"e"的編碼為"\u0065"
對于一些控制字符,使用特殊的C類型的轉(zhuǎn)義風(fēng)格(例如\n和\r)
html實體編碼
命名實體:以&開頭,以分號結(jié)尾
字符編碼:十進(jìn)制,十六進(jìn)制ASCII碼或者Unicode字符編碼
url編碼
使用XSS編碼測試時需要考慮html渲染的順序,針對多種編碼的組合時,要選擇合適的編碼進(jìn)行測試
常用繞過方式
雙寫繞過:基于“黑名單”的方式如調(diào)用str_replace函數(shù)將輸入的<script>刪除,可以構(gòu)造語句:<sc <script> ript> alert(/ xss /)</ script>繞過
大小寫混淆繞過:<ScRipt> alert(/ xss /)</ script>
報錯繞過(利用img ,body 等標(biāo)簽的事件或者iframe 等標(biāo)簽的src 注入惡意的js 代碼,我這里直接就簡寫成報錯繞過了,因為基本都是靠報錯條件來觸發(fā)):<img src =1 onerror = alert(/ xss /)>

XSS漏洞的修復(fù)

過濾用戶輸入的數(shù)據(jù)
對輸出到頁面的數(shù)據(jù)進(jìn)行相應(yīng)的編碼轉(zhuǎn)換

當(dāng)前題目:XSS漏洞詳解
文章源于:http://bm7419.com/article18/jcspgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)網(wǎng)站設(shè)計公司、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計