中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XSS漏洞詳解

發布時間:2020-07-22 13:20:09 來源:網絡 閱讀:2399 作者:Snow狼 欄目:安全技術

Xss漏洞介紹:

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

XSS漏洞原理及利用:

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

</center>

</body>
</html>


單擊替換時會執行tihuan()函數,而tihuan()函數是一個DOM操作,通過document,getElementById獲取ID為id1的節點,然后將節點id1的內容修改成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提供了四種字符編碼的策略
三位八進制數字,如果個數不夠,在前面補0,例如"e"的編碼為"\145"
兩位十六進制數字,如果個數不夠,在前面補0,例如"e"的編碼為"\x65"
四位十六進制數字,如果個數不夠,在前面補0,例如"e"的編碼為"\u0065"
對于一些控制字符,使用特殊的C類型的轉義風格(例如\n和\r)
html實體編碼
命名實體:以&開頭,以分號結尾
字符編碼:十進制,十六進制ASCII碼或者Unicode字符編碼
url編碼
使用XSS編碼測試時需要考慮html渲染的順序,針對多種編碼的組合時,要選擇合適的編碼進行測試
常用繞過方式
雙寫繞過:基于“黑名單”的方式如調用str_replace函數將輸入的<script>刪除,可以構造語句:<sc <script> ript> alert(/ xss /)</ script>繞過
大小寫混淆繞過:<ScRipt> alert(/ xss /)</ script>
報錯繞過(利用img ,body 等標簽的事件或者iframe 等標簽的src 注入惡意的js 代碼,我這里直接就簡寫成報錯繞過了,因為基本都是靠報錯條件來觸發):<img src =1 onerror = alert(/ xss /)>

XSS漏洞的修復

過濾用戶輸入的數據
對輸出到頁面的數據進行相應的編碼轉換

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保山市| 尼木县| 亳州市| 会宁县| 新绛县| 新野县| 台前县| 九台市| 西藏| 桂阳县| 怀远县| 斗六市| 云南省| 永福县| 池州市| 文昌市| 新和县| 溧阳市| 绍兴市| 炎陵县| 炉霍县| 弥渡县| 调兵山市| 修水县| 南华县| 隆尧县| 平遥县| 清苑县| 花莲市| 得荣县| 仙居县| 河西区| 平罗县| 宜都市| 龙海市| 温泉县| 桓台县| 湘阴县| 安康市| 桃江县| 延长县|