CSRF扩展 JSONP劫持

介绍:JOSNP(JSONP with Override Security Negotiation Protocol)劫持是一种利用JSONP

(JSON with Padding)跨域数据获取机制的安全漏洞,攻击者通过篡改或伪造JSONP回调函数窃

取用户敏感数据。由于JSONP依赖脚本标签跨域加载数据且缺乏严格的同源策略保护,恶意网站

可能诱导用户执行非预期的回调操作,导致数据泄露。

一.JSONP劫持原理

       因为在互联网是允许可以跨域加载js的,和前面CORS的区别就是CORS跨域要看对方服务后

端有没有限制允许你跨域,而我们今天学的JSONP劫持不需要对方限制,浏览器是默认允许的。

所以当我们找到另一个网站存在xss漏洞就可以利用,来跨域执行另一个网站的站点被恶意构造参

数返回的json数据映射执行恶意js代码。

       以上可能听着有点绕,下面我们去靶场演示一下。

二.DVWA靶场演示

打开centos 进入apache前端目录

新建一个页面json.php,这个是模拟用户json信息返回的页面,利用的是callback参数。

<?php
$callback = $_GET['callback'];
echo $callback . '({"id":"1","username";"mk"});';
?>
 

我们打开浏览器查看:

    我们打开hackerbar,对参数进行输入测试:

发现输入什么显示什么我们输入alert('123')查看回显:

页面并没有执行弹窗123,

我们利用此网站进行构造:<script src="http://192.168.112.17/json.php?callback=alert(123)"></script>,先单独访问一下这个url:

可以看到没有进行弹窗。

我们再在DVWA里xss漏洞里加入我们构造好的js代码:

 

以下是js代码:我们看到我们的<script >标签成功插入:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0> Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml>scroll
<head></head>
<body class="home">
<div id="container">
<div id="header"></div>
<div id="main_menu"></div>
v〈div id="main_body">
<div class="body_padded">
<h1>Vulnerability:Reflected Cross Site Scripting (XSS)</h1>
<div class="vulnerable_code_area">
<form name=XSS action=#method=GET>
(p>
What's your name?
<input type=text name="name">
<input type="submit"value="Submit">
</p>
〈/form>
v<pre〉=g0
"Hello
<script src="http://192.168.112.17/ison.php?callback=alert (123)"></script>
</pre>
</div>
<h2>More Information</h2>
<ul></ul>
</div>
<br>
<br>
</div>
<div class="clear"></div>
<div id="system_info></div>
<div id="footer"></div>

这里可以看到我们的插入是成功的

然后成功弹窗:

以上就是我们的JSONP劫持演示。

总结:JOSNP劫持的根源在于过度信任客户端输入及缺乏同源策略保护。通过输入验证、CSRF防护和迁移至CORS等技术,可有效降低风险。开发者需定期审计第三方脚本依赖,避免遗留漏洞被利用。

 

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

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

相关文章

HTTP/HTTPS 协议解析

前言 在当今互联网时代&#xff0c;HTTP/HTTPS 协议作为 Web 通信的基石&#xff0c;承载着几乎所有的网络内容传输。对于我们而言&#xff0c;深入理解这些协议不仅是技术素养的体现&#xff0c;更是构建高性能、安全、可靠 Web 应用的必要条件。 为什么我们需要深入了解 HT…

Flask-login 处理授权逻辑

认证 vs 授权&#xff1a; 在 Web 应用程序的安全机制中&#xff0c;认证&#xff08;Authentication&#xff09; 和 授权&#xff08;Authorization&#xff09; 是两个核心概念&#xff0c;它们虽然紧密相关&#xff0c;但职责和作用不同。 认证&#xff08;Authenticatio…

xenomai3+linux构建linux实时操作系统-基于X86_64和arm

简介&#xff1a; Xenomai是一个实时性解决方案&#xff0c;通过在Linux上添加实时内核Cobalt来增强实时性能。它有三个主要部分&#xff1a;libcobalt&#xff08;用户空间实时库&#xff09;、Cobalt&#xff08;内核空间实时内核&#xff09;和硬件架构特定层&#xff08;ip…

Linux核心文件(core file)详解

一、核心文件&#xff08;core file&#xff09;概述 1.1 什么是核心文件 核心文件&#xff08;core file&#xff09;是Linux操作系统在程序崩溃时生成的一种转储文件。它包含了程序崩溃时的内存内容、寄存器状态和执行状态。通过分析核心文件&#xff0c;开发者可以找到程序…

java中跨域问题及解决方案

1. 什么是跨域 从不同的地址访问另外一个地址就是跨域 2.跨域一定会有异常吗 跨域异常只会在前端发生&#xff0c;后端跨域不会产生异常 因为浏览器有一个叫做同源策略的东西&#xff0c;它发现不同域之间的访问是不安全的行为&#xff0c;会禁止&#xff0c;所以会抛出异常…

网络层协议 IP 协议介绍 -- IP 协议,网段划分,私有 IP 和 公网 IP,路由

目录 1 IP 协议 1.1 IP 协议格式 2. 网段划分 2.1 网络号和主机号 2.2 传统 IP 地址分类和 CIDR 技术 2.3 特殊的 IP 地址 2.4 IP 地址的数量限制 2.5 私有 IP 和公网 IP 3. 路由 网络层主要作用是实现不同局域网之间的通信连接&#xff0c;并为数据在复杂网络环境中的…

【案例分享】KMDA-7611-S001--高性能嵌入式电脑助力双臂轮式人形机器人应用

智能制造时代&#xff0c;双臂轮式机器人需求浮出水面 随着制造业、物流业和电子商务的飞速发展&#xff0c;智能搬运机器人正成为行业降本增效的核心工具。它们不仅解决了传统物流中效率低、成本高、安全性差等痛点&#xff0c;更通过智能化与可扩展性设计&#xff0c;通过自主…

iOS App上线前的安全防线:项目后期如何用Ipa Guard与其他工具完成高效混淆部署

对大多数iOS开发者来说&#xff0c;安全并不是开发早期就能解决的问题。尤其在项目逐步进入上线准备阶段后&#xff0c;才开始集中考虑逆向破解、资源泄露等安全隐患的解决方案。这个阶段往往时间紧张、结构复杂&#xff0c;再要重构源码或引入大规模修改几乎不现实。因此&…

技术佃农时代:当云计算成为新型地主经济

技术佃农时代:当云计算成为新型地主经济 导语:当算力成为生产资料,云账单背后的「数字佃租」正悄然重塑IT生产关系——我们是否在用自己的代码为云厂商开垦数字荒地? 一、揭开云计算的「佃租算法」面纱 // 云经济体的核心收割逻辑 public class CloudLandlord {public sta…

23种设计模式图解

《设计模式&#xff1a;可复用面向对象软件的基础》是软件工程领域的经典著作&#xff0c;由四位顶尖专家&#xff08;Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides&#xff0c;合称GoF&#xff09;编写&#xff0c;首次系统化提出了23种设计模式&#xff0c;分为…

git新建一个分支到gitlab项目目录中

先向git确认身份 git config --global user.email "youexample.com"看一下当前在哪个分支上&#xff08;没啥影响&#xff09; git status lculation$ git status 位于分支 my_new_branch 您的分支与上游分支 origin/main 一致。 用origin/main分支来新建一个分支 …

云原生时代配置中心全景解读:从Spring Cloud Config到Nacos深度实践

摘要&#xff1a;在分布式系统和云原生架构中&#xff0c;配置管理已从简单的键值存储演进为核心基础设施组件。本文深入解析四大主流配置中心&#xff08;Spring Cloud Config、Apollo、Nacos、Consul&#xff09;的架构设计与实战应用&#xff0c;并分享生产环境下的最佳实践…

Vue3 defineModel 原理解析

1. 引言 在上一篇文章中探讨了v-model的实现原理&#x1f517;。本文将聚焦于Vue3.4版本新增的defineModel语法糖&#xff0c;它显著简化了组件中v-model的实现方式。我们将详细解析defineModel的工作原理&#xff0c;并与3.4版本之前实现组件v-model的方法进行对比。 2. Vue…

GRPO训练布局感知的强化学习多模态文档解析框架-Infinity-Parser

前期《文档智能》专栏详细中介绍了文档智能解析详细pipline链路技术方案&#xff0c;如下图&#xff1a; 现在来看一个新思路&#xff0c;指出pipline链路依赖大量标注数据、并且会出现错误传播问题&#xff0c;导致解析效果不佳&#xff0c;故提出一个基于布局强化学习&…

【超详细】讯飞智能车PC电脑烧录指南(高级系统部署与恢复)

本指南旨在详细指导您如何使用PC电脑上的瑞芯微开发工具&#xff0c;对讯飞智能车进行固件烧录、分区镜像烧写和设备擦除等高级操作。这些操作通常用于系统出现严重问题、需要全新部署固件或进行底层恢复时。 一、所需设备与工具 在开始操作之前&#xff0c;请确保您准备好以…

【亲测可用】html+css3+ajax+php文件夹拖放上传系统(保持文件结构上传)

文件夹拖放上传系统&#xff08;保持文件结构&#xff09; 下面是一个完整的HTML5CSS3AJAXPHP实现&#xff0c;支持拖放文件夹上传并保持原有文件结构的解决方案。 前端部分 (index.html) <!DOCTYPE html> <html lang"zh-CN"> <head><meta c…

什么是数据清洗?数据清洗有哪些步骤?

目录 一、数据清洗的定义和重要性 1. 数据清洗的定义 2. 数据清洗的重要性 二、数据清洗的前期准备 1. 明确清洗目标 2. 了解数据来源和背景 3. 制定清洗计划 三、数据清洗的具体步骤 1. 数据审计 2. 处理缺失值 3. 处理重复值 4. 处理异常值 5. 数据标准化 6. 数…

Vue3+TypeScript中v-bind()的原理与用法

在 Vue 3 的单文件组件&#xff08;SFC&#xff09;中&#xff0c;v-bind() 用于在 <style> 块中动态绑定 CSS 值到组件的响应式数据&#xff0c;实现了状态驱动样式的能力。下面详细讲解其原理和用法&#xff1a; 一、核心原理 CSS 变量注入 Vue 编译器会将 v-bind() 转…

2 geotools入门示例

1. 设置 Spring Boot 项目并集成 GeoTools 依赖 首先&#xff0c;你需要创建一个新的 Spring Boot 项目。你可以使用 Spring Initializr 来快速生成项目骨架。 选择以下依赖&#xff1a; Web: Spring Web (用于创建 REST API)Developer Tools: Spring Boot DevTools (可选&a…

深度解析String不可变性:从Java底层到设计哲学

一、String不可变性的直观理解 在Java中,String对象一旦创建,其内容就不可更改。任何看似"修改"String的操作,实际上都是创建了一个全新的String对象。这种设计是Java语言基础架构的重要部分,理解其底层原理对编写高效、安全的Java程序至关重要。 String str =…