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

通过投毒Bingbot索引挖掘必应中的存储型XSS

简介

在本文中,我将讨论如何通过从外部网站对Bingbot进行投毒,来在Bing.com上实现持久性XSS攻击。

什么是存储型或持久性XSS?存储型攻击指的是将恶意脚本永久存储在目标服务器上,例如数据库、论坛、访问日志、评论栏等。受害者在请求这些存储的信息时会检索到恶意脚本,从而触发攻击。存储型XSS有时也称为持久性XSS或Type-II型XSS。

Bing和Bingbot是什么

图片

Bing 是微软开发的一款搜索引擎,提供网页、视频、图片和地图搜索服务。其目标是通过提供有组织且相关的搜索结果,帮助用户做出明智的决策。

图片

Bingbot 是由微软开发的一款网络爬虫,也称为蜘蛛或搜索引擎机器人。其主要功能是为微软的搜索引擎Bing抓取和索引网页。自2010年10月推出以来,Bingbot 通过外部和内部链接浏览网站,以发现新的网页并将现有网页的更改更新到Bing的索引中。

这个过程称为抓取,有助于Bing保持搜索结果的更新和相关性Bingbot 收集的数据被输入到Bing的搜索算法中,算法评估内容的上下文和质量,以确定其在搜索结果中的排名。

Bingbot的工作原理

在Bingbot抓取网页的过程中,它会将发现的信息发送给Bing。随后,这些页面会被加入Bing索引,并由算法分析,以便有效地纳入搜索结果,包括确定哪些网站、新闻文章、图片或视频会被纳入索引,供用户在搜索特定关键词时使用。了解更多关于Bing如何发现和索引页面的信息。

图片

漏洞细节

在Bing平台上发现了一个存储型跨站脚本(XSS)漏洞。该漏洞发生在Bing从互联网检索并存储视频的标题、描述和所有者信息等数据时,由于缺乏安全的处理方式,导致恶意脚本得以保留在Bing的索引中。这一过程涉及Bingbot或Bing的网络爬虫在对这些元数据进行索引时没有进行适当的清理,致使恶意脚本被存储在Bing的索引中。

影响

•恶意行为者可以在Bing的网络应用程序上下文中执行任意JavaScript代码。

•可能导致的攻击包括但不限于:Cookie窃取、会话劫持、网页篡改和钓鱼攻击。

•该漏洞影响所有查看感染视频详情的用户,构成严重的安全风险。

漏洞发现与分析

当用户在Bing上搜索视频时,搜索引擎处理查询并从其索引中检索相关内容。搜索结果页面会显示视频的详细信息,包括未经清理、可能包含恶意脚本的内容。应用程序将这些数据以JSON格式存储,但内容类型被设置为text/html,这可能导致持久性XSS攻击。

当用户查看或与这些受感染的视频互动时,恶意脚本会在Bing的网络应用程序上下文中执行。这是因为浏览器将数据解释为HTML,允许嵌入在JSON数据中的脚本运行。这会带来多种安全威胁,包括数据盗窃、会话劫持、钓鱼攻击和网页篡改。受感染内容的查看用户可能会因此而泄露个人信息或账户完整性受到影响。

内容类型设置不当进一步加大了风险,使攻击者更容易在Bing的网络应用程序中注入和执行脚本,绕过了依赖正确MIME类型处理的安全措施,以防止此类漏洞。

Bing上持久性XSS漏洞的发现

在我探索Bing时,发现在Bing的视频搜索中存在一个漏洞。当用户搜索视频时,Bing会显示从外部来源获取的未经过滤的视频详细信息。这允许注入恶意脚本,从而带来严重的安全风险。

回到故事的起点

某天,我使用Bing并发现,当用户在Bing图片搜索中搜索图片,而搜索结果为视频且用户尝试查看时,Bing的URL会变成:https://www.bing.com/videos/vdasync

图片

在点击并查看视频详情后,我发现API返回了Bingbot从其他网站收集并存储在Bing搜索系统中的视频元数据。

图片

img

但我注意到该URL的内容类型返回为 Content-type: text/html; charset=utf-8,而不是 application/json

图片

img

如果我们能够控制这些元数据,而Bingbot 在没有清理或编码的情况下检索我们的数据并将其存储到Bing网站上,会发生什么呢?

正如我在上一节中提到的关于Bingbot如何工作的,Bingbot帮助Bing保持其搜索结果的更新和相关性。因此,我尝试在其他平台上创建一个视频帖子。

问题是,我不知道我的新视频需要多长时间才能出现在Bing搜索中,所以我考虑在以下网站上发布新帖子:

•VK: https://vk.com/video/@club226523289

•Tiktok: https://www.tiktok.com/@m3ez_xss

•Instagram:https://www.instagram.com/m3ez.ss

•以及其他网站

为什么我没有在YouTube上发布视频

如你所见,从https://www.bing.com/videos/vdasync的截图响应中,数据响应为JSON格式。要执行JavaScript或HTML注入,我需要确保能够使用<>(尖括号)。但在YouTube上,这是不可能的。这一限制同样适用于其他流行平台,如Vimeo和Dailymotion。

图片

•幸运的是,几天后,我发现我在vk.com发布的视频出现在了Bing视频搜索中,这使我能够完成我的报告和概念验证,如下所示:

概念验证 (PoC):

•在一个网站上发布视频,并在所有者姓名、视频标题或描述中包含一个脚本:

•例如,我通过vk.com上传了一个视频,载荷如下:

<script>prompt('Stored XSS by Supakiad S. (m3ez)',document.domain);</script>

图片

发布了这个视频帖子,任何人都可以访问,包括允许Bingbot抓取我的视频元数据。

图片

等待Bingbot抓取并从vk.com检索视频并保存详细信息(包括注入的XSS脚本)。

然后开始搜索“Microsoft Bing Video”网页应用程序。我使用的关键词是"m3ez" site:vk.com

图片

点击视频后,URL中将出现mid参数:

图片

将之前步骤中的mid参数附加到以下URL中:

https://www.bing.com/videos/vdasync?mid={mid}

导航到该URL后,XSS载荷将被触发,如下所示:

https://www.bing.com/videos/vdasync?mid=6DD18424C941635DA77F6DD18424C941635DA77F

图片

 无偿 获 取 网 安 资 料:

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关

 

相关文章:

通过投毒Bingbot索引挖掘必应中的存储型XSS

简介 在本文中&#xff0c;我将讨论如何通过从外部网站对Bingbot进行投毒&#xff0c;来在Bing.com上实现持久性XSS攻击。 什么是存储型或持久性XSS&#xff1f;存储型攻击指的是将恶意脚本永久存储在目标服务器上&#xff0c;例如数据库、论坛、访问日志、评论栏等。受害者在…...

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55 前面我们讲述了几种BootLoader中的命令&#xff0c;包括获取软件版本号、获取帮助、获取芯片ID、读取Flash保护Level。 下面我们来介绍一下BootLoader中最重要的功能之一—跳转&#xff01;就像BootLoader词汇中的Boot…...

【Linux篇】面试——用户和组、文件类型、权限、进程

目录 一、权限管理 1. 用户和组 &#xff08;1&#xff09;相关概念 &#xff08;2&#xff09;用户命令 ① useradd&#xff08;添加新的用户账号&#xff09; ② userdel&#xff08;删除帐号&#xff09; ③ usermod&#xff08;修改帐号&#xff09; ④ passwd&…...

PET-文件包含

include发生错误报warning&#xff0c;继续执行。require发生错误直接error&#xff0c;不继续执行 无视扩展名&#xff0c;只要能解析&#xff0c;就能当可执行文件执行&#xff0c;哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…...

实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新

pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…...

PostgreSQL 修改字段类型但是存在视图依赖

其实视图的存在与否在数据库界一直是一个话题。用好视图可以简化程序的很多代码&#xff0c;用不好视图不仅会给维护带来很多的不便&#xff0c;也会造成很大的性能问题。下面我从维护方面给出案例&#xff0c;以及当存在这种问题的时候&#xff0c;如何去解决这个问题。 假设…...

基于.NET 9实现实时进度条功能:前后端完整示例教程

要在基于.NET 9的应用中实现进度条功能&#xff0c;我们可以通过HttpContext.Response来发送实时的进度更新到前端。以下是一个简单的示例&#xff0c;展示了如何在ASP.NET Core应用中实现这一功能。 但是&#xff0c;我在.net framework4.7.2框架下&#xff0c;实际不了HttpC…...

力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)

解题思路&#xff1a; 快慢指针 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy new ListNode(-1);dummy.next head;ListNode fast dummy;ListNode slow dummy;for (int i 0; i < n; i) {fast fast.next;}while (fast.ne…...

音频格式转换

一、场景 项目需求需要App实现声纹识别功能&#xff0c;调用科大讯飞接口&#xff1a; 声纹识别 API 文档 | 讯飞开放平台文档中心 其接口要求音频文件格式为mp3 二、问题产生 在安卓端根据官方文档说明&#xff0c;系统并不支持直接录制mp3格式音频&#xff0c;支持格式如…...

npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系

文章目录 作用示例常用选项示例命令注意事项 1、实战举例**解决方法**1. **锁定唯一的 types/node 版本**2. **清理依赖并重新安装**3. **设置 tsconfig.json 的 types**4. **验证 Promise 类型支持** **总结** npm list types/node 命令用于列出当前项目中 types/node 包及其…...

【Spring】Spring框架中有有哪些常见的设计模式

Spring 框架中广泛运用了多种设计模式&#xff0c;今天让我们来学习一下 1. 单例模式&#xff08;Singleton Pattern&#xff09; 用途&#xff1a;在Spring框架中&#xff0c;Bean默认是单例的&#xff0c;也就是说在容器中每种类型的Bean只有一个实例。这个设计可以节省资源…...

提升百度排名的有效策略与技巧解析

内容概要 提升百度排名对于网站的成功至关重要。首先&#xff0c;了解百度排名的基本原则&#xff0c;掌握搜索引擎是如何评估网页质量的&#xff0c;是优化过程中不可或缺的一部分。搜索引擎越来越倾向于将用户需求放在首位&#xff0c;因此提供高质量的内容和良好的用户体验…...

【Linux】Linux下查看cpu信息指令(top/mpstat/iostat/pidstat)说明

top命令 top(1) - Linux manual page (man7.org) top查看总的CPU利用率 us: 用户空间消耗的CPU资源占比&#xff0c;进程在用户态执行函数调用&#xff0c;编解码消耗的都是us sy: 内核空间消耗的CPU资源占比&#xff0c;进程调用系统调用达到内核后会增加sy的消耗 ni&…...

HDLBIts习题(3):使用冒号表示位宽时,冒号两端必须是常量

&#xff08;1&#xff09;易错习题1&#xff1a;Circuits - Combinational Logic - Multiplexers - 256-to-1 4bit multiplexer 使用冒号表示位宽时&#xff0c;冒号两端必须是常量&#xff0c;因此如果使用变量&#xff0c;可以使用位拼接的方法。 &#xff08;2&#xff09;…...

C++20协程详解

文章目录 什么是协程为什么需要协程什么时候使用协程协程的类别C20的协程协程的使用关键字co_wait框架一阶段完成数据交换co_yieldco_return 什么是协程 我们在学习编程的过程中&#xff0c;逐渐从单线程&#xff0c;到多线程&#xff0c;再到异步编程和并发处理 这些异步与并…...

Chromium 中chrome.system.display扩展接口定义c++

一、chrome.system.display 使用 system.display API 查询展示元数据。 权限 system.display 类型 ActiveState Chrome 117 及更高版本 用于指示系统是否检测到和使用显示屏的枚举。如果系统未检测到显示屏&#xff08;可能断开连接&#xff0c;或因睡眠模式等原因而被视…...

容器docker的ulimit

Ulimit 在linux里ulimit命令可以对shell生成的进程的资源进行限制。 常用的ulimit限制 打开文件句柄数core文件大小设置进程能够消耗的虚拟内存设置用户能够打开的进程数目 不太常用的ulimit限制 设置数据段的最大值.单位:kbytes 设置创建文件的最大值.单位:blocks 设置在…...

一、HTML

一、基础概念 1、浏览器相关知识 这五个浏览器市场份额都非常大&#xff0c;且都有自己的内核。 什么是内核&#xff1a; 内核是浏览器的核心&#xff0c;用于处理浏览器所得到的各种资源。 例如&#xff0c;服务器发送图片、视频、音频的资源&#xff0c;浏览…...

使用Geekbench6软件对真实和虚拟的苹果桌面系统(macOS)进行打分比较

前言 感觉VMWare安装的MacOS使用起来非常的慢&#xff0c;所以特意用打分软件GeekBench进行了评测。 一、Geekbench的安装 可以从官网直接进行下载&#xff0c; 链接是&#xff1a; 二、Geekbench的直接使用 2.1、真机的信息 2.2、虚拟机的信息 三、打分的比较 3.1、真机…...

lua入门教程:随机数

在Lua中&#xff0c;生成随机数是通过math库中的math.random函数来实现的。这个函数可以生成一个[0, 1)区间内的随机浮点数。如果你需要生成其他范围内的随机数&#xff0c;或者需要整数类型的随机数&#xff0c;可以通过一些简单的数学运算来调整math.random的输出。 以下是如…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...