web安全----XSS漏洞之基本原理

0x01 概述

XSS為跨站腳本攻擊,XSS攻擊針對的是用戶層面的攻擊!類型有反射型XSS、存儲型XSS、DOM型XSS,這里的DOM可以理解為頁面,或者是所有的標簽、內容之和

0x02 反射型XSS

反射型XSS攻擊流程為:
在這里插入圖片描述
即:
發送帶有XSS惡意鏈接----》用戶點擊,訪問目標服務器-----》目標服務器將XSS同正常頁面返回給用戶-----》用戶瀏覽器解析惡意XSS,向惡意服務器請求-----》惡意服務器獲取用戶信息。
所以反射型XSS又稱為非持久型XSS,經過后端,不經過數據庫,需要誘導目標去訪問某個鏈接,一般用來釣魚,盜取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>,數據提交之后會給后臺處理,彈出1
在這里插入圖片描述
把1.html想成惡意鏈接,我們訪問就是點擊惡意鏈接,輸入的<script>alert(1)</script>變成其他獲取用戶信息的代碼,用戶請求目標服務器上的action.php,action.php把惡意代碼XSS返回給用戶,用戶瀏覽器解析,惡意服務器就會獲得我們的信息了。
所以數據的流向是:
前端(用戶訪問的頁面1.html)-----》后端(action.php處輸出1.html內容)-----》前端(用戶看到action.php形成的頁面)

0x03 存儲型XSS

存儲型XSS又稱為持久性XSS,攻擊腳本會永久存放在目標服務器中,也就是說,每次我們訪問頁面,頁面會把我們構造的XSS取出來,然后執行,具體例子可以看一下DVWA的,這個好理解一些
在這里插入圖片描述

0x04 DOM型XSS

我覺得反射型和DOM型是最難理解,很難區分開,DOM型能夠使程序和腳本動態訪問和更新文檔的內容、結構和樣式,從客戶端獲取DOM中的數據并在本地執行,也具有一次性
程序:
2.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>DOMXSS</title>
</head>
<body><form action="action2.php" method="post"><input type="text" name="name"><input type="submit" value="提交"></form>
</body>
</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的內容,也就是修改DOM,數據流向:前端—》前端,很多人看到這里就很想問我們輸入數據不是經過action.php嗎,為什么說數據流向沒有經過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的內容。

0x05 總結

我對反射型XSS和DOM型XSS的理解是:反射型XSS是后端處理,不修改原來的DOM基礎上,將XSS返回給用戶,DOM型XSS是通過修改DOM,讓DOM里有XSS,可以不經過后端。

準備把XSS總結一下,這只是基本原理,后面會寫標簽,過WAF,怎么測試,工具檢測,利用方法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379940.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向對象(匿名內部類與有名字內部類的比較)

A:匿名內部類 就是內部類的簡化寫法B:前提 這里的類可以是具體類也可以是抽象類C&#xff1a;格式 new 類名或者接口(){ //表示繼承這個類或實現這個接口重寫方法}D&#xff1a;本質是什么呢&#xff1f; 是一個繼承了該類或者實現了該接口的子類匿名對象E&#xff1a;案…

如何在Python中針對一個值檢查多個變量?

Given multiple variables and they are assigned some values, we have to test a value with these variables. 給定多個變量并為其分配了一些值&#xff0c;我們必須使用這些變量測試一個值。 Let, there are three variables a, b and c and we have to check whether one…

品析《桃花庵歌》

桃花庵歌 【明】唐寅&#xff08;YIN) 桃花塢里桃花庵&#xff0c;桃花庵下桃花仙&#xff1b; 桃花仙人種桃樹&#xff0c;又摘桃花賣酒錢。 酒醒只在花前坐&#xff0c;酒醉還來花下眠&#xff1b; 半醒半醉日復日&#xff0c;花落花開年復年。 但愿老死花酒間&#xf…

面向對象(匿名內部類重寫多個方法調用)

①匿名內部類只針對重寫一個方法的時候使用; ②若有多個方法&#xff0c;通過匿名內部類進行調用的時候&#xff0c;需要一個一個進行調用,比較麻煩&#xff0c;所以不建議使用。 ③匿名內部類是無法向下轉型的&#xff0c;向下轉型需要子類的類名&#xff0c;這里面沒有子類…

c++ 取兩個鏈表的交集_使用C ++程序查找兩個鏈表的交集

c 取兩個鏈表的交集Problem statement: Write a C program to find the intersection of two single linked lists. 問題陳述&#xff1a;編寫一個C 程序來查找兩個單個鏈表的交集。 Example: 例&#xff1a; Let the first linked list be:6->5->2->9->NULLLet …

只在IE中顯示

只在IE中顯示div{display:none;display:block;_display:block}轉載于:https://www.cnblogs.com/lishenglyx/archive/2008/08/21/1273089.html

web安全---XSS漏洞之標簽使用2

所有標簽已經測試完并可以使用&#xff0c;測試環境&#xff1a;DVWA的反射型XSS&#xff0c;等級low 0x01 <script>標簽 <script>alert(2)</script> <script>alert(2)</script//0x02 <img>標簽 <img src"x" onerroralert(1)…

Java——多線程(鐵路售票系統案例)

問題&#xff1a;鐵路售票&#xff0c;一共100張&#xff0c;通過四個窗口賣完。 要求&#xff1a;分別用 繼承Thread類 和 實現Runnable接口 去實現 ①用繼承Thread類去實現 package com.yy.syn;public class Demo3_Ticket { /*** 鐵路售票&#xff0c;一共100張&#xff…

Java LocalDateTime類| 帶示例的getDayOfWeek()方法

LocalDateTime類getDayOfWeek()方法 (LocalDateTime Class getDayOfWeek() method) getDayOfWeek() method is available in java.time package. getDayOfWeek()方法在java.time包中可用。 getDayOfWeek() method is used to get the field value day-of-week that is an enum …

軟件測試方法大匯總

軟件測試方法大匯總 軟件測試方法種類繁多&#xff0c;記憶起來混亂&#xff0c; 如果把軟件測試方法進行分類, 就會清晰很多。 我參考一些書籍和網上的資料&#xff0c; 把常用的軟件測試方法列出來&#xff0c; 讓大家對軟件測試行業有個總體的看法。 從測試設計方法分類 測試…

web安全----xss工具使用3

XSSer 0x01 安裝 環境&#xff1a;kali、python3&#xff08;必須是python3&#xff0c;kali默認為python2&#xff09; 安裝步驟&#xff1a; git clone https://github.com/epsylon/xsser.git cd xsser sudo python3 setup.py install 使用命令&#xff1a; xsser -h查看…

Java——多線程(死鎖)

死鎖是指&#xff1a;兩個或兩個以上的進程在執行過程中&#xff0c;由于競爭資源或者由于彼此通信而造成的一種阻塞的現象&#xff0c;若無外力作用&#xff0c;它們都將無法推進下去。此時稱系統處于死鎖狀態或系統產生了死鎖&#xff0c;這些永遠在互相等待的進程稱為死鎖進…

c# 前導0_C#| 用前導零填充整數

c# 前導0To pad an integer number with leading zero, we can use String.Format() method which is library method of String class in C#. 要用前導零填充整數&#xff0c;我們可以使用String.Format()方法&#xff0c;該方法是C&#xff03;中String類的庫方法。 using S…

走到盡頭的技術-MVC

MVC技術是一種WebApplication設計技術&#xff0c;相比于傳統Web應用程序&#xff0c;MVC可以使程序結構更加清晰&#xff0c;他采用 Model&#xff0c;View&#xff0c;Controller 來管理和架構我們的Web資源&#xff0c;將不同的請求&#xff08;request&#xff09;導向不同…

Search Engine -垂直搜索小匯總

FilesTube: 共享文件搜索引擎,文件來自:Rapidshare, MegaUpload, Megashares, YouSendIt, SaveFile, FileFront和Badongo等很多文件儲存網站,支持的文件格式包括:AVI, MP3, MPEG, MPG, RAR, WMA, WMV, EXE, ZIP等,主要為媒體格式,不支持中文 Picsearch:專業圖片搜索引擎,中文界…

Java——多線程(線程安全問題)

同步為安全&#xff0c;不同步為不安全&#xff1b;也就是有synchronized這個標識符&#xff0c;就為線程安全&#xff0c;反之&#xff0c;為線程不安全。 ①Vector是線程安全的 ②StringBuffer是線程安全的 ③Hashtable是線程安全的 Collections.synchronized(xxx)&#…

web安全---XSS利用平臺BLUE-LOTUS安裝與使用

0x01 安裝 環境&#xff1a;windows、phpstudy 下載地址&#xff1a;https://gitee.com/gid1314/BlueLotus_XSSReceiver-master 下載后將文件解壓&#xff0c;重命名為blue&#xff0c;放在www目錄下 訪問&#xff1a;http://IP/blue 點擊安裝 這里只需要修改后臺登陸密碼和…

C#Convert.ToInt32(bool)方法-將bool值轉換為int

C&#xff03;Convert.ToInt32(bool)方法 (C# Convert.ToInt32(bool) Method) Convert.ToInt32(bool) Method is used to convert a specific Boolean (bool) value to its equivalent integer (int 32 signed number). Convert.ToInt32(bool)方法用于將特定的布爾值(布爾值)轉…

配置Microsoft Visual SourceSafe 2005的Internet訪問

配置Microsoft Visual SourceSafe 2005的Internet訪問 VSS2005發布以后&#xff0c;早就聽說可以支持Internet訪問&#xff0c;這是一個很有意思的特性。前兩天有空&#xff0c;就安裝配置了一下&#xff0c;成功訪問。現在安裝過程發布出來&#xff0c;大家共享。 步驟0&…

使用delphi 開發多層應用(十)安全訪問服務器

前面講了如何建立和訪問服務器,但是前面建的服務器都沒有安全控制&#xff0c;這里有很大的安全問題,第一是任何人做一個客戶端都可以都可以訪問 服務器。第二是數據在網絡傳輸過程中都是明碼的&#xff0c;沒有加密&#xff0c;使用網絡偵聽器就可以檢測到傳輸的內容。這是一個…