xss筆記與打靶(更新中)

這個文章好
https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshare=blogdetail&sharetype=blogdetail&sharerId=123624164&sharerefer=PC&sharesource=2401_88818565&sharefrom=from_link

什么是xss

XSS(跨站腳本攻擊,Cross-Site Scripting)是一種常見的網絡安全漏洞,攻擊者在網頁中嵌入客戶端腳本,通常是js編寫的危險代碼,當用戶使用瀏覽器瀏覽網頁時,腳本就會在用戶的瀏覽器上執行,從而達到攻擊者的目的。XSS 通常用于竊取用戶信息、會話劫持、篡改網頁內容或傳播惡意軟件。

如:盜取網站保存的cookie登陸其他用戶,攝像頭拍照

  1. 需要有xss接受平臺
  2. 生成一段js文件
  3. 找到由xss漏洞的地方,植入js
  4. 等待受害者訪問

發送的網址不要點,用虛擬機點

相關問題

網站:正常網站(有xss漏洞)
xss平臺:js文件下載
客戶端瀏覽器
js執行
js可以操作cookie

跨站腳本攻擊:執行了其他網址上的惡意js文件

如何區別是不是同一個網站:
https
http
瀏覽器根據同源策略判斷這兩個是不是同一個網站

同源策略:
協議 + 主機(域名/IP) + 端口,任何一個地方不一樣就不是同一個網站

瀏覽器是根據同源策略來單獨存儲每一個網站的cookie

漏洞產生原因

前端傳入的數據沒有做處理,變成了html的一部分來處理

處理指的是編碼處理。
<變成了&lt;

在html語言里很注重<>
如何讓語句里出現尖括號,用html實體符號

顯示結果描述實體名稱實體編號
空格&nbsp;&#160;
<小于號&lt;&#60;
>大于號&gt;&#62;

xss漏洞的危害

  1. 對于訪問量小的網站,發生xss漏洞沒什么用。一般在各類的社交平臺,郵件系統,開源流行的web應用,博客等。造成的殺傷力十分強大。
  2. 劫持用戶cookie是常見的跨站攻擊形式,通過在網頁中寫入并執行腳本執行文件(多數情況下是js腳本代碼),劫持用戶瀏覽器,將用戶當前使用的sessionID信息發送到攻擊這控制的網站或服務器中
  3. “框架釣魚”,利用js腳本的基本功能之一:操作網頁的DOM樹結構和內容,在網頁中通過js腳本,生成虛假的頁面,欺騙用戶執行操作,而用戶所有的輸入內容會被發送到攻擊者的服務器上。
  4. 掛馬(水坑攻擊)
  5. 有局域性的鍵盤記錄

xss分類

  1. 反射型
  2. 存儲型
  3. DOM型

挖漏洞,點到為止用alter()

反射型

中危漏洞
把http請求發送后又回到客戶端前端代碼中。

必須要點擊url,http

別亂點什么別人發的網址

出現位置:搜索框

存儲型

留言,到數據庫

先有一個人,把數據存進數據庫,又有人訪問時,將數據庫里的數據返回到客戶端瀏覽器。

高危漏洞。

進入網站就觸發

DOM型

js代碼彈窗
alert
href
prompt(1)
能看懂前端js代碼,不需要給服務器發http請求

xss漏洞存在位置

  1. 搜索框
  2. 登錄框
  3. 發表評論/發表文章
  4. 其他輸入框

常見的執行xss的html標簽

xss執行方法:

  1. 使用<script>alert(111)</script>
    有的客戶端會有過濾,將script替換為空
  2. <img src=xx onerror="alert(111)">
  3. <a href=xx onclick="alert(111)"></a>
  4. <svg olnload="alert(111)">
  5. 可以去網上搜索‘

xss防御

xss防御的總體思路是:對輸入進行過濾,單引號,雙引號,尖括號之類,對輸入進行編碼

過濾:根據業務需求進行過濾,比如輸入點要求輸入手機號,則只允許輸入手機號格式的數字

轉義:所有輸出到前端的數據都是根據輸出點進行轉義,比如輸入到html中進行html實體轉義,輸入到js里面的進行js轉義

xss之href輸出繞過:javascript:alert(111),直接帶入a標簽href里面一樣可以繞過htmlspecialchars,如果沒有用戶提交的數據交給a標簽,其實很難繞過

xss-labs

1

url?name=

2 轉義

再試一下1沒成功
看到網頁源碼,發現特殊符號沒有轉義

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

3 onclick

先試一下
看看源代碼,這里是單引號閉合,并且符號被實體化

htmlspecialchars()函數將一些預定義的字符轉換為html實體

沒對’設置,可以用onfocus或者onclick

js’ οnclick=‘alert(111)’
'將value閉合
但是我再搜索框中不行,閉合不了,但再開發者工具里編輯html元素可以

4

這里和3一樣,不過將’改為"就行

5 a href

我咋感覺f12中,找到需要更改的位置編輯為html元素就行

正常先試試3的payload發現不行,所有帶on的語句在on中間會加入_,那這里用a href標簽
" > <"

6 大小寫

這一關href也不行了
過濾了好多,看看大小寫能不能繞過

發現大小寫沒有被過濾掉,這題能利用大小寫進行繞過,所以我們可以用下面的方法,構造payload

用上面的改成部分大寫
“> <”

7 的、雙寫

先上關鍵字試試看
由源碼
這里面進行了小寫轉化,將檢測出來的on,script,href給刪掉了,但是沒有關系,我們可以利用雙拼寫來繞過。

我是l" oonnclick=‘alert(123)’

8 編碼

輸入的值在兩個,input標簽,href屬性

看看過濾了啥關鍵字

input標簽添加了html實體轉化函數還把雙引號也給實體化了, 添加了小寫轉化函數,還有過濾掉了src、data、onfocus、href、script、"

利用href的隱藏屬性自動Unicode解碼,將之前的payload編碼

javascript:alert(123)

9

這一關有檢查,需要向傳入的值里面添加http://并用注釋符注釋掉否則會執行不了無法彈窗

javascript:alert()/* http:// */

10 隱藏傳參

沒搜索框

看到源代碼,有隱藏傳參,并過濾掉了<>號,不能閉合插入標簽,但是我們還能用on
click事件,因為這里輸入框被隱藏了,需要添加type=“text”

?t_sort="οnclick=‘alert(11)’ type="text

11 referer抓包

試試和上一關一樣的
發現被轉義
?t_sort="οnclick=‘alert(11)’ type="text
其他的傳參也試試了發現不行

難搞查了一下,t_ref的標簽是http頭referer的參數(就是由啥地址轉跳到這里的,http頭的referer會記錄有)

那進行抓包傳參
把大于小于號><給刪掉了

抓包之后構造請求

Referer:js" οnclick=‘alert(111)’ type="text

12 User-Agent

和11一樣看到網頁源代碼可以看到,t_ua

在User-Agent中清除加入:js" οnclick=‘alert(111)’ type="text

13 cookie

t_cook,想到cookie
f12
cookie名為user,我們直接在這里改一下就好

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

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

相關文章

Visual Studio 2022新建c語言項目的詳細步驟

步驟1&#xff1a;點擊創建新項目 步驟2&#xff1a;到了項目模板 --> 選擇“控制臺應用” (在window終端運行代碼。默認打印"Hello World") --> 點擊 “下一步” 步驟3&#xff1a;到了配置新項目模塊 --> 輸入“項目名稱” --> 更改“位置”路徑&…

SQL進階技巧:上課時長計算

目錄 0 問題描述 1 數據準備 2 問題解決 核心難點 時間區間標記與分組 區間合并與時長計算

HashMap 在多線程環境下可能引發哪些問題?如何解決?

HashMap 在多線程環境下可能引發哪些問題&#xff1f; 答案&#xff1a; 在多線程同時操作 HashMap 時&#xff0c;可能引發 死循環、數據丟失、臟數據讀取 等問題。 根本原因&#xff1a; HashMap 的設計是非線程安全的&#xff0c;多線程并發修改其結構&#xff08;如擴容、…

告別GitHub連不上!一分鐘快速訪問方案

一、當GitHub抽風時&#xff0c;你是否也這樣崩潰過&#xff1f; &#x1f621; npm install卡在node-sass半小時不動&#x1f62d; git clone到90%突然fatal: early EOF&#x1f92c; 改了半天hosts文件&#xff0c;第二天又失效了... 根本原因&#xff1a;傳統代理需要復雜…

【軟考-架構】2.1、操作系統概述-進程管理-同步互斥

?資料&文章更新? GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目錄 操作系統知識操作系統概述進程組成和狀態&#x1f4af;考試真題前趨圖進程資源圖&#x1f4af;考試真題問題1問題2 ?【重點】進程同步與互斥?&#x1f4af;考試真題問題…

基于開源庫編寫MQTT通訊

目錄 1. MQTT是什么&#xff1f;2. 開發交互UI3. 服務器核心代碼4. 客戶端核心代碼5. 消息訂閱與發布6. 通訊測試7. MQTT與PLC通訊最后. 核心總結 1. MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Terlemetry Transport&#xff09;消息隊列遙測協議&#xff1b;是…

在VScode下配置C/C++環境(tasks.json、launch.json、c_cpp_properties.json)

文章目錄 1. tasks.json、launch.json配置文件中參數(屬性)的說明2. tasks.json介紹3. launch.json介紹4. 直接生成tasks.json、launch.json配置文件的另外一種方式5. c_cpp_properties.json介紹6. 運行多個C/C文件7. 命令行方式編譯C 1. tasks.json、launch.json配置文件中參數…

ORB-SLAM2源碼學習(六):相機跟蹤(局部地圖跟蹤和關鍵幀創建)

目錄 1.局部地圖跟蹤 1.1 更新局部關鍵幀UpdateLocalKeyFrames 1.2 更新局部地圖點&#xff08;來自局部關鍵幀&#xff09;UpdateLocalPoints() 1.3 投影匹配 2. 對比四種跟蹤方式以及使用的投影匹配 3.關鍵幀創建 3.1 判斷是否需要創建新關鍵幀: NeedNewKeyFrame() 3…

PostgreSQL時間計算大全:從時間差到時區轉換(保姆級教程)

一、時間計算的三大核心場景 當你遇到這些需求時&#xff0c;本文就是你的救星&#x1f31f;&#xff1a; 倒計時功能&#xff1a;計算活動剩余天數 用戶行為分析&#xff1a;統計操作間隔時間 跨國系統&#xff1a;多時區時間統一管理 報表生成&#xff1a;自動計算同比/環…

Qt6.8.2創建WebAssmebly項目使用FFmpeg資源

Qt6新出了WebAssmebly功能&#xff0c;可以將C寫的軟件到瀏覽器中運行&#xff0c;最近一段時間正在研究這方便內容&#xff0c;普通的控件響應都能實現&#xff0c;今天主要為大家分享如何將FFmpeg中的功能應用到瀏覽器中。 開發環境&#xff1a;window11&#xff0c;Qt6.8.2…

DeepSeek V3 源碼:從入門到放棄!

從入門到放棄 花了幾天時間&#xff0c;看懂了DeepSeek V3 源碼的邏輯。源碼的邏輯是不難的&#xff0c;但為什么模型結構需要這樣設計&#xff0c;為什么參數需要這樣設置呢&#xff1f;知其然&#xff0c;但不知其所以然。除了模型結構以外&#xff0c;模型的訓練數據、訓練…

【leetcode hot 100 240】搜索二維矩陣Ⅱ

解法一&#xff1a;直接查找 class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int i0; i<matrix.length; i){for(int j0; j<matrix[0].length; j){if(matrix[i][j]>target){break;}if(matrix[i][j]target){return true;}}}return fal…

UE4 組件 (對話組件)

制作一個可以生成對話氣泡&#xff0c;顯示對話臺詞的簡單組件。這個組件要的變量&#xff1a;臺詞&#xff08;外部傳入&#xff09;。功能&#xff1a;開始對話&#xff08;生成氣泡UI&#xff09; &#xff0c;結束對話。 一、對話組件創建 二、開始對話事件 1、注意這里獲…

自動化同步多服務器數據庫表結構

當項目每次進行版本升級的時候&#xff0c;如果在這次迭代中涉及表結構變更&#xff0c;需要將不同的生產環境下&#xff0c;都需要同步表結構的DDL語句&#xff0c;比較麻煩&#xff0c;而且還有可能忘記同步腳本&#xff0c;導致生產環境報錯.... 該方案采用SpringBootMybat…

DeepSeek安全:AI網絡安全評估與防護策略

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取網絡安全全套資料&#xff0c;資料在手&#xff0c;漲薪更快 本文基于現有的公開資料&#xff0c;從企業資深網絡安全專家的視角&#xff0c;系統梳理DeepSeek技術在網絡安全領域的潛在貢獻與核心風險&#xff0c;并結合中國…

【論文筆記】Attentive Eraser

標題&#xff1a;Attentive Eraser: Unleashing Diffusion Model’s Object Removal Potential via Self-Attention Redirection Guidance Source&#xff1a;https://arxiv.org/pdf/2412.12974 收錄&#xff1a;AAAI 25 作者單位&#xff1a;浙工商&#xff0c;字節&#…

【powerjob】 powerjobserver注冊服務IP錯誤

1、問題&#xff1a;powerjobserver 4.3.6 的服務器上有多個網卡對應多個ip,示例 eth0 :IP1 &#xff0c;docker0:IP2 和worker 進行通信時 正確的應該時IP1 但是注冊顯示獲取的確實IP2,導致 worker 通過ip2和server通信&#xff0c;網絡不通&#xff0c;注冊不上 2、解決方案 …

視頻錄像機視頻通道是指什么

視頻錄像機的視頻通道是指攝像機在監控矩陣或硬盤錄像機設備上的視頻輸入的物理位置。 與攝像頭數量關系&#xff1a;在視頻監控系統中&#xff0c;有多少個攝像頭就需要多少路視頻通道&#xff0c;通道數量決定了視頻錄像機可接入攝像頭的數量&#xff0c;一般硬盤錄像機有4路…

面試150,數組 / 字符串

27. 移除元素 class Solution:def removeElement(self, nums: List[int], val: int) -> int:# 把不等于 val 的值移動到前面n len(nums)left 0for right in range(n):if nums[right] ! val:nums[left] nums[right]left 1return left26. 刪除有序數組中的重復項 只保留 1…

【江科大STM32】TIM輸入捕獲模式PWMI模式測頻率

一、輸入捕獲測頻率 接線圖&#xff1a; 測信號的輸入引腳為PA6&#xff0c;信號從PA6進來&#xff0c;待測的PWM信號也是STM32自己生成的&#xff0c;輸出引腳是PA0&#xff0c;所以接線這里直接用一根線將PA0引到PA6就可以了。 如果有信號發生器的話&#xff0c;也可以設置成…