web安全----XSS漏洞之基本原理
0x01 概述
XSS為跨站腳本攻擊,XSS攻擊針對的是用戶層面的攻擊!類型有反射型XSS、存儲型XSS、DOM型XSS,這里的DOM可以理解為頁面,或者是所有的標簽、內(nèi)容之和
0x02 反射型XSS
反射型XSS攻擊流程為:
即:
發(fā)送帶有XSS惡意鏈接----》用戶點擊,訪問目標服務(wù)器-----》目標服務(wù)器將XSS同正常頁面返回給用戶-----》用戶瀏覽器解析惡意XSS,向惡意服務(wù)器請求-----》惡意服務(wù)器獲取用戶信息。
所以反射型XSS又稱為非持久型XSS,經(jīng)過后端,不經(jīng)過數(shù)據(jù)庫,需要誘導目標去訪問某個鏈接,一般用來釣魚,盜取cookie。
程序:
1.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>反射型XSS</title> </head> <body><form action="action.php" method="post"><input type="text" name="name" /><input type="submit" value="提交"></form> </body> </html>action.php
<?php$name = $_POST["name"];echo $name;獲取name的值,將name輸出來,輸入<script>alert(1)</script>,數(shù)據(jù)提交之后會給后臺處理,彈出1
把1.html想成惡意鏈接,我們訪問就是點擊惡意鏈接,輸入的<script>alert(1)</script>變成其他獲取用戶信息的代碼,用戶請求目標服務(wù)器上的action.php,action.php把惡意代碼XSS返回給用戶,用戶瀏覽器解析,惡意服務(wù)器就會獲得我們的信息了。
所以數(shù)據(jù)的流向是:
前端(用戶訪問的頁面1.html)-----》后端(action.php處輸出1.html內(nèi)容)-----》前端(用戶看到action.php形成的頁面)
0x03 存儲型XSS
存儲型XSS又稱為持久性XSS,攻擊腳本會永久存放在目標服務(wù)器中,也就是說,每次我們訪問頁面,頁面會把我們構(gòu)造的XSS取出來,然后執(zhí)行,具體例子可以看一下DVWA的,這個好理解一些
0x04 DOM型XSS
我覺得反射型和DOM型是最難理解,很難區(qū)分開,DOM型能夠使程序和腳本動態(tài)訪問和更新文檔的內(nèi)容、結(jié)構(gòu)和樣式,從客戶端獲取DOM中的數(shù)據(jù)并在本地執(zhí)行,也具有一次性
程序:
2.html
action2.php
<?php$name = $_POST['name'];?> <input id="text" type="text" value="<?php echo $name?>"/> <div id="print"></div> <script>var text = document.getElementById("text");var print = document.getElementById("print");print.innerHTML = text.value </script>輸入<script>alert(1)</script>,也會彈出1,可以看到修改了div的內(nèi)容,也就是修改DOM,數(shù)據(jù)流向:前端—》前端,很多人看到這里就很想問我們輸入數(shù)據(jù)不是經(jīng)過action.php嗎,為什么說數(shù)據(jù)流向沒有經(jīng)過action.php,也就是后端,這個只是為了方便處理,我們可以把
<div id="print"></div> <script>var text = document.getElementById("text");var print = document.getElementById("print");print.innerHTML = text.value </script>放在1.html里,然后給<input type="text" name="name">一個ID,點擊之后能修改div的內(nèi)容。
0x05 總結(jié)
我對反射型XSS和DOM型XSS的理解是:反射型XSS是后端處理,不修改原來的DOM基礎(chǔ)上,將XSS返回給用戶,DOM型XSS是通過修改DOM,讓DOM里有XSS,可以不經(jīng)過后端。
準備把XSS總結(jié)一下,這只是基本原理,后面會寫標簽,過WAF,怎么測試,工具檢測,利用方法
總結(jié)
以上是生活随笔為你收集整理的web安全----XSS漏洞之基本原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sys.stdin.read和raw_i
- 下一篇: 许昌看不孕不育最好的医院推荐