XSS-labs(反射型XSS) 靶場 1-13關 通關

目錄

前言

XSS漏洞概述

XSS漏洞分類

通關日記

level1

分析

解題

?level2

分析

?解題

?方法一:閉合標簽

方法二:閉合雙引號

level3

分析?

解題

level4

分析

解題

level5

分析

解題

level6

分析

解題

level7

分析?

解體

level8

分析

解題

level9?

分析

解題

level10

分析

解題

level11

分析?

解題

level12

分析

解題

level13

分析?

解題


前言

XSS漏洞概述

XSS(跨站腳本攻擊,Cross-Site Scripting)?是一種常見的Web安全漏洞,攻擊者通過注入惡意腳本到網頁中,當其他用戶訪問該頁面時,惡意腳本會在其瀏覽器中執行,可能導致數據竊取、會話劫持等安全問題。

XSS漏洞分類

  1. 存儲型XSS(Stored XSS)

    • 描述:惡意腳本被永久存儲在目標服務器上,當用戶訪問包含該腳本的頁面時,腳本被執行。

    • 示例:攻擊者在論壇帖子中插入惡意腳本,其他用戶查看該帖子時,腳本在其瀏覽器中執行。

  2. 反射型XSS(Reflected XSS)

    • 描述:惡意腳本作為請求的一部分發送到服務器,服務器將其反射回用戶的瀏覽器并執行。

    • 示例:攻擊者構造一個包含惡意腳本的URL,誘使用戶點擊,腳本在用戶瀏覽器中執行。

  3. DOM型XSS(DOM-based XSS)

    • 描述:惡意腳本通過修改頁面的DOM結構來執行,不涉及服務器端的反射。

    • 示例:攻擊者利用前端JavaScript代碼中的漏洞,直接修改DOM元素,導致惡意腳本執行。

通關日記

level1

分析

通過觀察URL,發現時GET傳參,修改傳遞的參數時,html頁面發生改變,說明是直接傳遞到了html頁面中,沒有做過濾

解題

直接修改URL參數,注入惡意js語句

<script>alert(1)</script>

level2

分析

還是一樣,我們先在URL處輸入我們的惡意語句

http://127.0.0.1/xss/xsslabs/level2.php?keyword=<script>alert(1)</script>

發現沒有觸發,做了一個實體轉換,將標簽轉換為了一個普通文本,所以在頁面顯示出來了。

之后我們查看網頁源碼

?發現我們注入的語句被放到了value中,這樣瀏覽器就不會執行我們的注入語句,我們要構造閉合

而這時有兩種思路,一種是只閉合雙引號,重新寫一個屬性。另一種是閉合標簽,之后再寫一個標簽

"><script>alert(1)</script>

?解題

?方法一:閉合標簽
"><script>alert(1)</script>
方法二:閉合雙引號
" onclick="alert(1)

?

level3

分析?

我們查看源碼,發現第三關比第二關多了一個htmlspecialchars函數(將特殊字符轉換為HTML實體)默認轉義雙引號,不轉義單引號。加上ENT_QUOTES參數后轉義單引號

解題

a' onclick='alert(1)

level4

分析

我首先嘗試了一下閉合雙引號和單引號,意外的是用第二關閉合雙引號的方法竟然也能成功,那它與第二關有什么區別呢?所以我查看源碼,發現第四關過濾了'<' '>' 。所以其實它的意思是,不允許我們閉合input標簽,不能發生用戶交互

解題

a' autofocus onfocus='alert(1)

level5

分析

查看源碼,發現第五關過濾了script和on,而且不是過濾為空,那么我們就不能雙寫繞過了。strtolower函數也防止了我們大小寫繞過。那我們就要考慮有哪些標簽用不到on了

解題

"><a href="javascript:alert(1)">a</a>

level6

分析

查看源碼,發現第六關過濾script、on、src、data和href,但是它沒有轉小寫的操作。那我們就可以使用大小寫繞過的方法

解題

a" Onclick="alert(1)

level7

分析?

第七關過濾了script、on、src、data和href,也轉小寫了,但是他過濾是過濾為空,此時我們就可以雙寫繞過了

解體

a" oonnclick="alert(1)

level8

分析

在第七關的基礎上,第八關對雙引號做了過濾。我們先隨便輸入一個惡意語句測試一下

很好看出,input我們已經用不了了,我們可以將目光轉向a標簽。雖然他對script有過濾但是我們可以將javascript實體編碼傳入。

解題

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)javascript:alert(1)

level9?

分析

第九關的源碼比第八關多了一個對http://的檢查如果沒有就會這樣輸出

?那我們不是只需要在第八關的基礎上將alert(1)改為alert('http://')不就可以了嗎

解題

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

?

level10

分析

?檢查網頁源碼

發現他有三個input標簽,但是網頁卻什么都沒有,type=hidden是隱藏的。那我們應該測試這三個input看看有沒有變化?。經過測試,只有t_sort有問題

http://127.0.0.1/xss/xsslabs/level10.php?keyword=well%20done!&t_sort=a%22%20type=%22text%22

那接下來我們在t_sort傳值不就ok了嗎?

解題

http://127.0.0.1/xss/xsslabs/level10.php?keyword=well%20done!&t_sort=a%22%20onclick=alert(1)%20type=%22text

?

level11

分析?

第十一關與第十關相比,它的源碼多了t_ref,并且在t_sort進行了過濾,那我們就要在t_ref上下文章了。我們可以從源碼看出來 t_ref的value值其實就是HTTP_REFERER。而對于referer我們可以使用hackbar插件來進行設置。那我們把referer改成我們的惡意語句不就成功了?

解題

level12

分析

第12關和第11關相比,只是從修改referer變成了ua

解題

level13

分析?

13關與前兩關唯一的區別就是,t_cook的value值是接受的user,我們只需要在構造的時候加上user=即可。

解題

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

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

相關文章

GPT-5 將免費向所有用戶開放?

GPT-5 將免費向所有用戶開放&#xff1f; 硅谷知名分析師 Ben Thompson 最近與 OpenAI CEO Sam Altman 進行了一場深度對談&#xff0c;其中Sam Altman透漏GPT-5將免費向大家發放。 OpenAI 這波操作可不是一時沖動&#xff0c;而是被逼出來的。DeepSeek 這個新秀橫空出世&am…

【雜記二】git, github, vscode等

一、前言 暫時空著... 二、git 2.1 可能的疑問 1. VSCode 項目名和 GitHub 倉庫名是否需要一致&#xff1f; 不需要一致。 VSCode 項目名&#xff08;也就是你本地的文件夾名字&#xff09;和 GitHub 倉庫名可以不一樣。 Git 是一個分布式版本控制系統&#xff0c;它主要關…

數學愛好者寫的編程系列文章

作為一個數學愛好者&#xff0c;我大學讀的專業卻不是數學專業&#xff0c;而是跟計算機有關的專業。原本我對編程一竅不通&#xff0c;平時上課也是在看數學文獻&#xff0c;作業基本靠同學&#xff0c;考試及格就行。不過后來因為畢業的壓力&#xff0c;我還是擁抱編程了&…

FPGA 以太網通信(四)網絡視頻傳輸系統

一、網絡視頻傳輸系統 網絡視頻傳輸系統使用ov5640攝像頭采集數據&#xff0c;通過組件UDP幀將視頻數據實時傳輸給上位機。 ov5640視頻傳輸帶寬 像素分辨率設為640x480&#xff0c;幀率設為60幀&#xff0c;像素格式為RGB565&#xff0c;傳輸帶寬為 640 x 480 x 16bit x 60 fps…

[leetcode]1631. 最小體力消耗路徑(bool類型dfs+二分答案/記憶化剪枝/并查集Kruskal思想)

題目鏈接 題意 給定 n m n\times m nm地圖 要從(1,1) 走到 (n,m) 定義高度絕對差為四聯通意義下相鄰的兩個點高度的絕對值之差 定義路徑的體力值為整條路徑上 所有高度絕對差的max 求所有路徑中 最小的路徑體力值是多少 方法1 這是我一開始自己寫的記憶化剪枝 比較暴力 時…

DeepSeek寫打臺球手機小游戲

DeepSeek寫打臺球手機小游戲 提問 根據提的要求&#xff0c;讓DeepSeek整理的需求&#xff0c;進行提問&#xff0c;內容如下&#xff1a; 請生成一個包含以下功能的可運行移動端打臺球小游戲H5文件&#xff1a; 要求 可以重新開始游戲 可以暫停游戲 有白球和其他顏色的球&am…

webpack使用詳細步驟

項目描述 本項目 webpack 的基本使用。 webpack 官方&#xff1a;https://webpack.docschina.org/concepts/ Element-plus 官方&#xff1a;https://element-plus.sxtxhy.com/zh-CN/ Vue3 官方&#xff1a;https://cn.vuejs.org/ 項目組成明細 每個步驟完成后重新執行 npm run …

【STM32實物】基于STM32的太陽能充電寶設計

基于STM32的太陽能充電寶設計 演示視頻: 基于STM32的太陽能充電寶設計 硬件組成: 系統硬件包括主控 STM32F103C8T6、0.96 OLED 顯示屏、蜂鳴器、電源自鎖開關、溫度傳感器 DS18B20、繼電器、5 V DC 升壓模塊 、TB4056、18650鋰電池、9 V太陽能板、穩壓降壓 5 V三極管。 功能…

【記一次】AI微調訓練步數計算方式

llama微調訓練步數計算方式,以下數據為假設 一、關鍵參數解析 總樣本數&#xff1a;Num examples 1,047 表示訓練數據集包含 1,047 個樣本。 訓練輪數&#xff1a;Num Epochs 300 表示整個訓練集將被遍歷 300 次。 總批次大小&#xff1a;Total train batch size 80 表示…

python-selenium 爬蟲 由易到難

本質 python第三方庫 selenium 控制 瀏覽器驅動 瀏覽器驅動控制瀏覽器 推薦 edge 瀏覽器驅動&#xff08;不容易遇到版本或者兼容性的問題&#xff09; 驅動下載網址&#xff1a;鏈接: link 1、實戰1 &#xff08;1&#xff09;安裝 selenium 庫 pip install selenium&#…

yaffs

YAFFS&#xff08;Yet Another Flash File System&#xff09;是專為NAND閃存設計的日志結構文件系統&#xff0c;其核心原理圍繞NAND閃存的特性優化數據管理。以下是其關鍵原理的詳細說明&#xff1a; 1. NAND閃存適配 寫入限制&#xff1a;NAND閃存需按頁寫入&#xff08;通…

git的底層原理

git的底層原理 三段話總結git&#xff0c; 1. 工作原理&#xff1a;git管理是一個DAG有向無環圖&#xff0c;HEAD指針指向branch或直接指向commit&#xff0c;branch指向commit&#xff0c;commit指向tree&#xff0c;tree指向別的tree或直接指向blob。 2. git所管理的一個目錄…

【計算機網絡原理】選擇題+簡答題

文章目錄 選擇題網絡基礎IP網絡拓撲 OSI七層模型協議HDLCTCP/IP 交換技術網絡安全數字簽名 算法與策略 簡答題UDPTCP 選擇題 網絡基礎 下列域名中&#xff0c;屬于國際頂級域名的是&#xff08;&#xff09; A. us B. tom C. edu D. int 下列關于光纖傳輸介質的敘述中錯誤的是…

Android數據加密方案

Android數據加密方案 前言 在移動應用開發中,數據安全是一個永恒的話題。Android應用中往往需要存儲和傳輸敏感數據,如用戶密碼、支付信息、個人隱私等。本文將深入介紹Android平臺上的數據加密方案,幫助開發者構建安全可靠的數據保護機制。 基礎知識 1. 加密算法分類 …

神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論

綫性空間的維數&#xff1a; 若綫性空間中存在一組綫性無關的矢量&#xff0c;使得中的任意矢量 都可以由綫性表示&#xff0c;則稱為綫性空間的維數&#xff0c;記作&#xff0c;稱為的一組基。 基與座標變換&#xff1a; 設和是維綫性空間的兩組基&#xff0c;且&#xff0c;…

github代理 | 快速clone項目

代理網址&#xff1a; https://ghproxy.com/ https://ghproxy.com/代理網址&#xff1a; https://ghproxy.com/ 比如需要克隆的項目git地址為&#xff1a;https://github.com/AUTOMATIC1111/stable-diffusion-webui.git git clone https://ghproxy.com/https://github.com/AUTO…

Kafka集成Debezium監聽postgresql變更

下載postgres的插件&#xff1a;https://debezium.io/documentation/reference/2.7/install.html 2.7版本支持postgresql12數據庫。 debezium-connector-postgres-2.7.4.Final-plugin.tar.gz 上傳插件并解壓 mkdir /usr/local/kafka/kafka_2.12-2.2.1/connector cd /usr/local…

『uniapp』簡單文本復制文字 富文本內容復制文字(詳細圖文注釋)

目錄 text組件錯誤代碼示例成功代碼總結 歡迎關注 『uniapp』 專欄&#xff0c;持續更新中 歡迎關注 『uniapp』 專欄&#xff0c;持續更新中 text組件 官方文檔可知app端用selectable可實現文本選中進而可復制,也就是說text標簽內部的文本就可以復制了 https://uniapp.dclou…

RestTemplate和RPC區別

RestTemplate是Spring框架中用于進行RESTful風格的HTTP請求的模板類&#xff0c;通常用于與外部服務進行通信。它基于HTTP協議&#xff0c;使用GET、POST、PUT、DELETE等HTTP方法來進行通信&#xff0c;傳輸的數據通常使用JSON或XML格式。它是一種基于資源的通信方式&#xff0…

算法模型從入門到起飛系列——背包問題(探索最大價值的掘金之旅)

文章目錄 前言一、背包問題溯源&#xff08;動態規劃&#xff09;1.1 動態規劃的概念1.2 動態規劃的基本步驟1.3 動態規劃的實際應用 二、背包問題2.1 背包問題衍生2.2 0-1背包2.2.1 0-1背包描述2.2.2 0-1背包圖解2.2.3 0-1背包代碼刨析 2.3 完全背包2.3.1 完全背包描述2.3.2 完…