当前位置: 首页 > news >正文

Web 攻防之业务安全:Callback自定义测试(触发XSS漏洞)

Web 攻防之业务安全:Callback自定义测试

业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库,中间件等)、业务系统自身(软件或设备)、业务所提供的服务安全狭义的业务安全指业务系统自有的软件与服务的安全


目录:

Callback自定义测试:

测试原理和方法:

测试过程:

第一步:使用 Burp Suite 的爬虫功能,从重点关注的目录(一般为网站的根目录)开始爬取,在  HTTP history 选项卡中选中要开始爬取的项,右键选择 “Spider from here”。爬取的结果会在 Target  --> Site map 中显示。在爬取完毕后,再使用 Burp Suite 过滤功能找到带有 Callback 参数的链接.(在输入关键字之后,再点击 “1” 的位置,即可让过滤功能生效)

第二步:找到 URL 带有 callback 参数的链接.

第三步:查看 URL 对应的 HTTP Response(查看响应的数据包) 的 Content-Type 类型是否为 text/html ,如果 Content-Type 为 text/html ,我们输入的标签才会被浏览器识别。则将对应的请求发送到 Repeater(重发器) 

第四步:查看 Callback 参数是否存在过滤及可控,这时我们需要在 Callback 参数值前追加一些文本类的 HTML 标签,不直接使用 script 等标签,避免 waf 等保护设备的检测。这里我们使用标签是一级标签。例如:callback=Testjsonp1,然后发送查看响应效果有没有Test 内容,如果有则存在漏洞,然后进行删除 info(在URL中) 的参数,得到精简 URL.

第五步:在 精简 URL 中把 callback 参数更换为恶意行为的 HTML 标签,在新的浏览器中进行利用.

修复建议:


免责声明:

严禁利用本文章中所提到的技术进行非法攻击,否则后果自负,上传者不承担任何责任。


Callback自定义测试:

测试原理和方法:

在浏览器中存在着同源策略,所谓同源是指域名,协议,端口相同。当使用 Ajax 异步传输数据时,非同源域名之间存在限制,其中有一种解决方法是 JSONP(JSON with Padding), 基本原理利用了  HTML <script> </script> 元素标签,远程调用 JSONP 文件来实现数据传递,JSONP 技术中一般使用 Callback(回调函数)参数来声明回调时所使用的函数名,这里往往存在安全问题,由于没有使用白名单的方法进行限制 Callback 函数名,导致攻击者可以自定义 Callback 内容,从而触发XSS等漏洞。


测试过程:

攻击者在测试前,使用 Burp Suite 的爬虫功能对网站进行爬取,筛选出带有 Callback 或者 JSONP 参数的请求,请对请求响应的 Content-Type 进行判断,如果 Content-Type text/html, 则进行下一步,接着攻击者对 Content-Type 参数进行分析,如果 Callback 参数允许攻击者插入 HTML 标签,则存在漏洞。


第一步:使用 Burp Suite 的爬虫功能,从重点关注的目录(一般为网站的根目录)开始爬取,在  HTTP history 选项卡中选中要开始爬取的项,右键选择 “Spider from here”。爬取的结果会在 Target  --> Site map 中显示。在爬取完毕后,再使用 Burp Suite 过滤功能找到带有 Callback 参数的链接.(在输入关键字之后,再点击 “1” 的位置,即可让过滤功能生效)


第二步:找到 URL 带有 callback 参数的链接.

第三步:查看 URL 对应的 HTTP Response(查看响应的数据包) 的 Content-Type 类型是否为 text/html ,如果 Content-Type 为 text/html ,我们输入的标签才会被浏览器识别。则将对应的请求发送到 Repeater(重发器) 


第四步:查看 Callback 参数是否存在过滤及可控,这时我们需要在 Callback 参数值前追加一些文本类的 HTML 标签,不直接使用 script 等标签,避免 waf 等保护设备的检测。这里我们使用标签是一级标签<h1>。例如:callback=<h1>Test</h1>jsonp1,然后发送查看响应效果有没有<h1>Test</h1> 内容,如果有则存在漏洞,然后进行删除 info(在URL中) 的参数,得到精简 URL.


第五步:在 精简 URL 中把 callback 参数更换为恶意行为的 HTML 标签,在新的浏览器中进行利用.


修复建议:

(1)严格定义 HTTP 响应中的 Content-Typejson 数据格式:Content-Type:application / json

(2)建立 Callback 函数白名单,如果传入的 Callback 参数值不在白名单内,跳转到统一的异常页面阻止其继续输出.

(3)对 Callback 参数进行 HTML 实体编码来过滤掉 “ < ”,“ > ” 等字符.

     

    

学习的书籍:Web 攻防之业务安全实战指南.

相关文章:

Web 攻防之业务安全:Callback自定义测试(触发XSS漏洞)

Web 攻防之业务安全&#xff1a;Callback自定义测试 业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台&#xff08;操作系统、数据库&#xff0c;中间件等&#xff09;、业务系统自身&#xff08;软件或设备&#xff09;、业务所提…...

Java访问底层操作系统

native方法定义&#xff1a; 简单地讲&#xff0c;一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法&#xff1a;该方法的实现由非java语言实现&#xff0c;比如C。这个特征并非java所特有&#xff0c;很多其它的编程语言都有这一机…...

Python 进阶指南(编程轻松进阶):十六、面向对象编程和继承

原文&#xff1a;http://inventwithpython.com/beyond/chapter16.html 定义一个函数&#xff0c;并从几个地方调用它&#xff0c;可以省去复制和粘贴源代码的麻烦。不复制代码是一个很好的实践&#xff0c;因为如果你需要修改它&#xff08;无论是为了修复一个错误还是添加新特…...

【计算机系统结构】第一章 计算机系统结构基本概念

文章目录第一章 计算机系统结构基本概念1.1 计算机系统结构的概念1.2 计算机体系结构的发展1.3 系统结构中并行性的发展1.4 系统结构的设计1.5 定量分析技术基础第一章 计算机系统结构基本概念 课程内容 A I P S N 工业革命 1.1 计算机系统结构的概念 引言 第一台通用计算机 …...

e2fsprogs logsave Ubuntu 安装失败 unable to make backup link of ‘./usr/bin/chattr‘

最近给服务器从 Ubuntu 18.04 LTS 升级到 20.04 LTS&#xff0c;过程中崩溃&#xff0c;重新尝试执行&#xff0c;提示依赖错误。这时候 apt install 所有的东西都会报错&#xff0c;提示依赖不满足。&#xff08;这里的报错忘了复制了&#xff09;执行 apt upgrade 也是一样。…...

在排序数组中查找元素的第一个和最后一个位置(二分查找进阶)

在写这个题目之前需要大家自行看一下我之前写的博客有关二分查找思想,如何判断什么时候使用二分查找以及边界值的确定:二分查找思想力扣实例_徐憨憨&#xff01;的博客-CSDN博客 题目:给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定…...

1 Nginx跨域配置

跨域问题在之前的单体架构开发中&#xff0c;其实是比较少见的问题&#xff0c;除非是需要接入第三方SDK时&#xff0c;才需要处理此问题。但随着现在前后端分离、分布式架构的流行&#xff0c;跨域问题也成为了每个Java开发必须要懂得解决的一个问题。 跨域问题产生的原因 产…...

ChatGTP如此强大,我们普通人如何利用它来赚钱?

我从效率提升的角度&#xff0c;分享了我这段时间看到的、用到的&#xff0c;以及思考的一些内容。 最近这段时间&#xff0c;我算是密集的学习。不得不说&#xff0c;优质的资料在推特和油管上特别多&#xff0c;看科技大佬的分享真是一种享受。 很多大神也会录制各种详细的…...

常见的九种大数据分析模型

常见的9种大数据分析模型分别为&#xff1a; 事件分析、 属性分析、 渠道分析、 Session分析、 留存分析、 归因分析、 漏斗分析、 路径分析、 分布分析 1、【事件分析】 事件分析&#xff0c;是指用户在 APP、网站等应用上发生的行为&#xff0c;即何人&#xff0c;何时&…...

射频识别(RFID)技术的基本原理、特性、发展和应用

何谓射频识别 随着高科技的蓬勃发展&#xff0c;智能化管理已经走进了人们的社会生活&#xff0c;一些门禁卡、第二代身份证、公交卡、超市的物品标签等&#xff0c;这些卡片正在改变人们的生活方式。其实秘密就在这些卡片都使用了射频识别技术&#xff0c;可以说射频识别已成…...

3.3 二维随机变量条件分布

学习目标&#xff1a; 要学习二维随机变量的条件分布&#xff0c;我可能会采取以下步骤&#xff1a; 复习边缘分布和联合分布&#xff1a;首先需要了解二维随机变量的边缘分布和联合分布的概念以及相应的公式。 复习条件概率&#xff1a;学习条件概率的定义和计算公式&#x…...

Kafka——概述、安装及命令行操作

文章目录一、概述1.1、定义1.2、如何运作&#xff1f;1.3、传统消息队列的应用场景1.4、消息队列的两种模式1.5、Kafka的基础架构二、安装&#xff08;需要安装zookeeper&#xff09;三、常用命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作一、概述…...

怎么控制ERP企业管理系统开发的价格

企业资源规划&#xff08;ERP&#xff09;是一种广泛使用的商业软件系统&#xff0c;用于管理企业的各个方面&#xff0c;包括财务、供应链、客户关系、人力资源等等。开发一个适合企业的ERP系统可能是一项昂贵的任务&#xff0c;但控制ERP企业管理系统开发的价格是可行的。以下…...

我在“Now In Android”中学到的 9 件事

我在“Now In Android”中学到的 9 件事 Now in Android是一款功能齐全的 Android 应用程序&#xff0c;完全使用 Kotlin 和 Jetpack Compose 构建。它遵循 Android 设计和开发最佳实践&#xff0c;旨在为开发人员提供有用的参考。 https://github.com/android/nowinandroid UI…...

ChatGPT宝藏插件丨装上之后,上网、语音聊天、一键分享对话……简直让你爽到起飞!

今天分享4个让你的 ChatGPT 功能更强大的浏览器插件&#xff0c;装上就能用&#xff0c;每一个都是精挑细选。 1. WebChatGPT 很多小伙伴在用 ChatGPT查阅信息时&#xff0c;发现它有一个致命的问题&#xff1a; ChatGPT的知识库全部截止到 2021年9月&#xff0c;正常情况下…...

私有句柄表

私有句柄表 实验环境 win7 x86 什么是私有句柄表&#xff1f; 私有句柄表是操作系统内部的一种数据结构&#xff0c;用于存储一个进程所拥有的句柄&#xff08;或称为句柄对象&#xff09;的信息。在操作系统中&#xff0c;句柄是一个标识符&#xff0c;用于唯一标识一个对…...

Vue——类与样式绑定

目录 Class 与 Style 绑定​ 绑定 HTML class​ 绑定对象​ 绑定数组​ 在组件上使用​ 绑定内联样式​ 绑定对象​ 绑定数组​ 自动前缀​ 样式多值​ Class 与 Style 绑定​ 数据绑定的一个常见需求场景是操纵元素的 CSS class 列表和内联样式。因为 class 和 styl…...

软考中项计算题总结

计算题在下午的考试属于重中之重&#xff0c;可以说得计算题得天下&#xff0c;先把计算题搞定&#xff0c;再看案例找错题&#xff0c;这2个是最容易得分的&#xff0c;所以对于进度、成本类的计算题一定要搞懂&#xff1a; 所属项目过程计算计算公式说明进度管理三点估算&am…...

如何使用基于GPT-4的Cursor编辑器提升开发效率

程序员最恨两件事情&#xff1a;一是别人代码不写文档&#xff0c;二是要让自己写文档。随着 GPT-4 的到来这些都不是问题了&#xff0c;顺带可能连程序员都解决了。。。 之前一直觉得 AI 生成的代码也就写个面试题的水平&#xff0c;小打小闹&#xff0c;现在时代可变了。Curs…...

压箱底教程分享,手把手教会你如何注册target账号和下单

喜欢套利的朋友肯定都认识target这个平台吧&#xff0c;它是美国热门的综合性海淘网站之一。东哥近日收到私信有朋友向我请教在注册target账号时遇到的一些问题&#xff0c;所以今天东哥想跟大家分享的就是就是target账号注册教程和下单流程&#xff0c;让也想注册target账号的…...

数据库优化实战分享:高频场景下的性能调优技巧与案例解析

在实际开发与生产运维中&#xff0c;数据库的性能瓶颈往往是影响系统响应速度和用户体验的关键因素。尤其是在高并发访问、海量数据处理、复杂查询逻辑等高频场景下&#xff0c;数据库优化不仅仅是“锦上添花”&#xff0c;更是“雪中送炭”。本篇博文将结合实际项目经验&#…...

互联网大厂Java求职面试:AI与大模型技术在企业知识库中的深度应用

互联网大厂Java求职面试&#xff1a;AI与大模型技术在企业知识库中的深度应用 第一轮&#xff1a;场景引入与基础架构设计 面试官&#xff08;技术总监&#xff09;&#xff1a; “郑薪苦&#xff0c;我们先从一个实际场景开始吧。假设我们要为企业知识库设计一个深度融合AI大…...

指针的使用——基本数据类型、数组、结构体

1 引言 对于学习指针要弄清楚如下问题基本可以应付大部分的场景&#xff1a; ① 指针是什么&#xff1f; ② 指针的类型是什么&#xff1f; ③ 指针指向的类型是什么&#xff1f; ④ 指针指向了哪里&#xff1f; 2 如何使用指针 任何东西的学习最好可以总结成一种通用化的…...

[论文阅读] 人工智能+软件工程 | 用大模型优化软件性能

用大模型优化软件性能&#xff1f;这篇论文让代码跑出新速度&#xff01; arXiv:2506.01249 SysLLMatic: Large Language Models are Software System Optimizers Huiyun Peng, Arjun Gupte, Ryan Hasler, Nicholas John Eliopoulos, Chien-Chou Ho, Rishi Mantri, Leo Deng, K…...

C++算法动态规划1

DP定义&#xff1a; 动态规划是分治思想的延申&#xff0c;通俗一点来说就是大事化小&#xff0c;小事化无的艺术。 在将大问题化解为小问题的分治过程中&#xff0c;保存对这些小问题已经处理好的结果&#xff0c;并供后面处理更大规模的问题时直接使用这些结果。 动态规划具…...

【Web应用】若依框架:基础篇21二次开发-页面调整

文章目录 ⭐前言⭐一、课程讲解⭐二、怎样选择设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐三、怎样使用设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内…...

从 Stdio 到 HTTP SSE,在 APIPark 托管 MCP Server

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; 是一种由 Anthropic 公司于 2024 年 11 月推出的开源通信协议&#xff0c;旨在标准化大型语言模型&#xff08;LLM&#xff09;与外部数据源和工具之间的交互。 它通过定义统一的接口和通信规则…...

判断它是否引用了外部库

在一个 C# 项目中&#xff0c;要系统性地判断它是否引用了外部库&#xff08;包括 NuGet 包、引用的 DLL、项目间依赖等&#xff09;&#xff0c;你应从以下几个关键维度入手进行检查和分析&#xff1a; 1. 检查 .csproj 项目文件 C# 项目使用 .csproj 文件&#xff08;MSBuil…...

JavaWeb:前端工程化-TS(TypeScript)

概述 快速入门 常用类型 基础类型 联合类型 函数类型 对象类型 接口Interface Interface和type区别 典型推论...

极客时间-《搞定音频技术》-学习笔记

极客时间-《搞定音频技术》-学习笔记 语音基础知识 https://www.zhangzhenhu.com/audio/feature.html 序章-0 作者说这个语音技术啊&#xff0c;未来肯定前景大好啊&#xff0c;大家都来学习&#xff0c;然后给出了课程的脑图 音频基础 什么是声音 声音的三要素是指响度、…...