本Lab学习到关于AngularJS的 xss 漏洞利用
直接输入回显页面,但是把<>进了 html 编码了

当我们输入{{1+1}},没有当作字符处理,而是执行了

{{}} 是多种前端框架(如 Vue、Angular、Django 模板等)中常见的模板插值语法,主要用于将数据动态绑定到视图,双花括号 {{1+1}} 包裹的表达式会执行运算。
测试{{alert()}},因为存在沙箱机制过滤了危险字符

这里用到新的绕过方法{{ $eval.constructor('alert()')() }}

下面分析为什么这样可以执行alert()

创建 AngularJS 代码

<!DOCTYPE html>
<html><head><title>AngularJS</title><!-- 引入AngularJS库(1.6.9版本) --><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script></head><!-- 定义Angular应用(模块名为myApp)和控制器(myCtrl)的作用域 --><body ng-app="myApp" ng-controller="myCtrl"><!-- 双向数据绑定:显示$scope.firstName的值 -->{{ firstName }}<!-- 表达式计算:直接输出1+1的结果2 -->{{ 1+1 }}            </body><script>// 创建AngularJS模块(名为myApp),空数组表示无依赖模块var app = angular.module("myApp", []);// 定义控制器myCtrl,注入$scope服务app.controller("myCtrl", function($scope) {// 在$scope上定义firstName属性,初始值为"John"$scope.firstName = "John";});</script>
</html>

当我们在代码中加入{{ $eval.constructor('alert()')() }},通过构造函数执行alert()


创建一个<p id="test"></p>
angular.element(document.getElementById('test')).scope();获取的作用域对象
$id=2是子作用域

任何时候我们创建 javascript 对象,都会从原型Prototype继承一些默认属性,例如$eval$on

在这里插入图片描述
$id=1是根作用域,来自Prototype
在这里插入图片描述

我们可以定义一个函数function test(),最后通过test()调用这个函数执行打印输出Hello world!

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/Function手册中查看关于Function() Constructor

虽然这是创建函数的方式,但不推荐这样做

根据上面的方法重新写一个函数

若不将函数赋给某个变量,将不会执行

记住前面说的

我们直接在后面加()即可调用函数

所以此时再看本次Lab解题 payload最后这个()就是在调用前面通过构造函数创建的函数

这次我们直接看下test()函数的构造函数,就是Function()构造函数,因为它可以创建Function对象

在AngularJS中,$onScope对象的方法,用于监听事件。作为函数,它本身是Function的实例,因此其constructor属性指向Function构造函数

$on.constructor('alert()') 等价于 Function('alert()'),生成一个匿名函数,再通过 () 调用该函数,于是就形成了最终的 payload

为什么不能直接{{Function('alert()')()}},因为有防护机制,所以要用scope对象的方法的构造函数传入 payload 执行

PortSwigger 靶场实战持续更新中

echo "Quermeinhumike+8mmh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS92aWRlby9CVjE4cDdyejhFaDgv
P3ZkX3NvdXJjZT0zMGU4ODFmYzYxYjJkYWFjMDVmYWFkN2RmZjAyMjMxZgo="|base64 -d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85717.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85717.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/85717.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 多网卡安全路由配置(SSH 不断线版)

Ubuntu 多网卡路由配置笔记&#xff08;内网 外网同时通&#xff09;&#xff08;SSH断线版&#xff09;文章浏览阅读386次&#xff0c;点赞4次&#xff0c;收藏5次。本文介绍了Ubuntu 如何配置双网卡设备的路由规则&#xff0c;使默认流量走外网&#xff08;192.168.2.0/24&a…

基于昇腾NPU部署llamafactory单机多卡微调Qwen3教程

1. 进入华为云 华为云首页 点击右上角控制台 2.进入ModelArts 点击搜索框->搜索“ModelArts”->选择AI开发平台ModelArts->进入平台后点击开发者空间 3.创建Notebook 3.1在开发者空间中点击Notebook->在西南贵阳一下点击创建Notebook 3.2进入创建Notebook页…

关于XES文件格式诸多问题

1. 格式类型是什么&#xff1f; case:concept:name (案例ID) - 必须是字符串类型concept:name (活动名称) - 字符串类型time:timestamp - 必须是datetime类型 2. 如何修改&#xff1f; data[case:concept:name] data[case:concept:name].astype(str)data[concept:name] data…

数据融合平台有哪些?在数据治理中发挥什么作用?

目录 一、常见的数据融合平台 &#xff08;一&#xff09;传统数据融合平台 &#xff08;二&#xff09;实时数据融合平台 &#xff08;三&#xff09;云数据融合平台 二、数据融合平台在数据治理中的作用 &#xff08;一&#xff09;提升数据质量 &#xff08;二&#…

​​Linux:XFS 文件系统扩容完整指南

​​​问题背景​​ 在扩展 Linux 根目录 / 时,我遇到了一个错误: sudo resize2fs /dev/uos/root resize2fs: 超级块中的幻数有错 尝试打开 /dev/uos/root 时找不到有效的文件系统超级块。 经过排查,发现根本原因是 ​​文件系统类型是 XFS​​,而 resize2fs 仅适用于 e…

网络安全之CTF专题赛RE题解

easyre hap文件改成zip格式然后解压去反编译abc文件即可拿到源码 这里推荐一个网站.abcD 蛮好用的 下载反编译结果&#xff0c;解压后用vscode打开分析。 这里可以看到一些目录结构&#xff0c;我们先看看flag目录 x_2_2.count位1000000的时候就会输出flag那么大概率是一个点…

a padding to disable MSIE and Chrome friendly error page

问题 a padding to disable MSIE and Chrome friendly error page 解决 nginx 代理地址 配错了

71、C# Parallel.ForEach 详解

Parallel.ForEach 是 .NET Framework 4.0 引入的并行编程功能的一部分&#xff0c;位于 System.Threading.Tasks 命名空间中。它允许你对集合中的元素进行并行处理&#xff0c;可以显著提高处理大量数据时的性能。 基本用法 using System; using System.Collections.Generic;…

生产者-消费者模式在不同操作系统上的行为差异

在多线程编程中&#xff0c;生产者-消费者模式是一种常见的设计模式&#xff0c;用于解决线程间的数据同步问题。最近&#xff0c;我在 Linux 和 macOS 上运行同一个生产者-消费者模式的程序时&#xff0c;发现它们表现出不同的行为。本文将介绍这个现象、分析其原因&#xff0…

【JS-4.1-DOM获取元素操作】深入理解DOM操作:高效获取页面元素的方法与实践

在现代Web开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;操作是前端工程师的必备技能。而DOM操作的第一步&#xff0c;往往是从页面中获取我们需要操作的元素。本文将全面介绍各种获取页面元素的方法&#xff0c;分析它们的性能特点&#xff0c;并提供最佳实践建议…

UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名

UE5错误 Linux离线状态下错误 请求失败libcurl错误&#xff1a;6无法解析主机名 完整描述问题解析解决方法 完整描述 loghttp&#xff1a;warning&#xff1a;ox015cba21400:request failed libcurl error :6 (couldn’t resolve host name ) 问题解析 这是因为在离线状态下…

深度学习实战111-基于神经网络的A股、美股、黄金对冲投资策略(PyTorch LSTM)

文章目录 一、A股与美股对冲互补投资方案1. 现象与逻辑2. 对冲互补投资思路3. 资金分配样例4. 最大化收益的关键二、对冲互补投资思路1. 资金分配原则2. 动态调整机制3. 对冲操作三、投资方案样例1. 初始资金分配(假设总资金10万元)2. 动态调整举例情景一:美股进入牛市,A股…

在线教育平台敏捷开发项目

项目背景 产品名称&#xff1a;LearnFlow&#xff08;在线学习平台&#xff09; 核心目标&#xff1a;6个月内上线MVP&#xff08;最小可行产品&#xff09;&#xff0c;支持课程学习、进度跟踪、测验功能。 团队构成&#xff1a; 产品负责人&#xff08;PO&#xff09;1人 S…

C++面试题(35)-------找出第 n 个丑数(Ugly Number)

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。例如 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 请编写一个函数&#xff0c;找出第 n …

Day03_数据结构(手写)

01.数据结构画图 02. //11.按值查找返回位置 int search_value(node_p H,int value) { if(HNULL){ printf("入参为空.\n"); return -1; …

【Java学习笔记】Collections工具类

Collections 工具类 基本介绍 &#xff08;1&#xff09;Collections 中提供了一系列静态方法对集合元素进行排序&#xff0c;查询和修改等操作 &#xff08;2&#xff09;操作对象&#xff1a;集合 常用方法一览表 方法描述reverse(List<?> list)反转 List 中元素…

spring-webmvc @ResponseBody 典型用法

典型用法 基本用法&#xff1a;返回 JSON 数据 GetMapping("/users/{id}") ResponseBody public User getUser(PathVariable Long id) {return userService.findById(id); }Spring 自动使用 Jackson&#xff08;或其他 HttpMessageConverter&#xff09;将 User 对…

AI-调查研究-08-跑步分析研究 潜在伤害与预防 不同年龄段与性别的情况

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究

大家好我是微学AI,今天给大家介绍一下AI任务相关解决方案9-深度学习在工业质检中的应用:基于DeepLabv3+模型的NEU-seg数据集语义分割研究。DeepLabv3+模型在NEU-seg数据集上实现了高达87.65%的平均交并比(mIoU),为金属表面缺陷的高精度检测提供了有力工具。本文将详细探讨Dee…

mysql JSON_EXTRACT JSON_UNQUOTE 函数

在处理mysql 有存储的json字段&#xff0c;需要提取时候发现JSON_EXTRACT函数&#xff0c;发现此函数提取后会带有引号&#xff0c;组合使用JSON_UNQUOTE 可去掉引号&#xff01; JSON_EXTRACT 函数概述 JSON_EXTRACT是MySQL中用于从JSON文档中提取数据的函数&#xff0c;语法…