基于JSON的SQL注入攻击触发需要更新Web应用程序防火墙

news2024/11/30 12:36:59

©网络研究院

安全研究人员开发了一种通用的 SQL 注入技术,可以绕过多个 Web 应用程序防火墙 (WAF)。问题的核心是 WAF 供应商未能在 SQL 语句中添加对 JSON 的支持,从而使潜在的攻击者可以轻松隐藏其恶意负载。

Claroty Team82 的研究人员发现的绕过技术已被证实可以对抗来自 Palo Alto Networks、Amazon Web Services (AWS)、Cloudflare、F5 和 Imperva 的 WAF。

这些供应商已发布补丁,因此客户应更新其 WAF 部署。但是,该技术也可能适用于其他供应商的 WAF 解决方案,因此用户应该询问他们的提供商是否可以检测并阻止此类攻击。

Claroty 研究人员在他们的报告中说:“使用这种新技术的攻击者可以访问后端数据库并使用其他漏洞和漏洞利用通过直接访问服务器或通过云来泄露信息。

这对于已经转向基于云的管理和监控系统的 OT 和物联网平台尤为重要。WAF 承诺从云中获得额外的安全性;能够绕过这些保护的攻击者可以广泛访问系统。”

在调查其他漏洞时发现绕过

Claroty 研究人员在调查他们在 Cambium Networks 名为 cnMaestro 的无线设备管理平台中发现的漏洞时开发了这种攻击技术,该平台可以部署在本地和云端。

Cambium 运营的云服务为每个客户提供单独的 cnMaestro 服务器隔离实例,并在后端使用 AWS。

该团队在 cnMaestro 中发现了七个漏洞,包括一个 SQL 注入 (SQLi) 漏洞,该漏洞允许他们从服务器数据库中窃取用户会话、SSH 密钥、密码哈希、令牌和验证码。

SQL 注入是最常见和最危险的 Web 应用程序漏洞之一,它允许攻击者将任意 SQL 查询注入请求,然后应用程序将以自己的权限对数据库执行这些请求。

在确认他们的漏洞对 cnMaestro 的本地部署有效后,研究人员尝试对云托管实例进行攻击。从服务器响应中,他们意识到请求很可能被 AWS 的 Web 应用程序防火墙阻止,防火墙将其检测为恶意请求。

研究人员没有放弃,而是决定调查 AWS WAF 如何识别 SQL 注入尝试,因此他们创建了自己的托管在 AWS 上的易受攻击的应用程序并向其发送恶意请求。

他们的结论是,WAF 使用两种主要方法来识别 SQL 语法:在请求中搜索它识别为 SQL 语法一部分的特定词,并尝试将请求的不同部分解析为有效的 SQL 语法。

虽然大多数 WAF 除了 WAF 的独特之处外,还会结合使用这两种方法,但它们都有一个共同的弱点:它们需要 WAF 来识别 SQL 语法。

这引发了我们的兴趣,并提出了一个主要的研究问题:如果我们能找到 WAF 无法识别的 SQL 语法会怎样?

WAF 供应商忽视了 SQL 中的 JSON

大约从 10 年前开始,数据库引擎开始添加对使用 JSON(JavaScript 对象表示法)数据的支持。JSON 是一种数据格式和交换标准,在网络应用程序和网络 API 相互通信时广泛使用。

由于应用程序已经以 JSON 格式交换数据,关系数据库引擎的创建者发现允许开发人员在 SQL 操作中直接使用此数据而无需额外处理和修改非常有用。

PostgreSQL 早在 2012 年就添加了此功能,多年来其他主要数据库引擎也相继加入:2015 年的 MySQL、2016 年的 MSSQL 和 2022 年的 SQLite。

如今,所有这些引擎都默认启用了 JSON 支持。然而,WAF 供应商并没有效仿,可能是因为他们仍然认为这个功能是新的并且不为人所知。

Claroty 研究人员称:“根据我们对 WAF 如何将请求标记为恶意请求的理解,我们得出的结论是,我们需要找到 WAF 无法理解的 SQL 语法,如果我们可以提供 WAF 无法识别为有效 SQL 但数据库引擎会解析它的 SQLi 有效负载,我们实际上可以实现绕过。

事实证明,JSON 正是 WAF 的解析器和数据库引擎之间的这种不匹配。当我们传递使用不太流行的 JSON 语法的有效 SQL 语句时,WAF 实际上并没有将请求标记为恶意请求。”

在确认 AWS WAF 防火墙存在漏洞并且他们可以使用 JSON 来隐藏他们的 SQLi 漏洞后,研究人员想知道其他 WAF 是否也存在同样的漏洞。

对几家主要供应商的 WAF 的测试证明他们的怀疑是正确的,他们可以使用 JSON 语法绕过 SQLi 防御,而供应商之间只需进行最小的修改。

研究人员向他们发现容易受到攻击的供应商报告了这个问题,同时也将他们的技术贡献给了 SQLMap,这是一种开源渗透测试工具,可以自动执行 SQL 注入攻击。这意味着绕过技术现在是公开可用的,任何人都可以使用。

Team82 向五家领先的 WAF 供应商披露了它的发现,所有这些供应商都在他们的产品中添加了 JSON 语法支持。

我们认为其他供应商的产品可能会受到影响,应该对 JSON 支持进行审查。

执行摘要

  • Team82 开发了一种通用的绕过行业领先的 Web 应用程序防火墙 (WAF) 的方法。

  • 攻击技术涉及将 JSON 语法附加到 WAF 无法解析的 SQL 注入负载。

  • 主要的 WAF 供应商在他们的产品中缺乏 JSON 支持,尽管它被大多数数据库引擎支持了十年。

  • 大多数 WAF 将很容易检测到 SQLi 攻击,但在 SQL 语法之前添加 JSON 会使 WAF 对这些攻击视而不见。

  • 我们的绕过对五家领先供应商销售的 WAF 有效:Palo Alto Networks、Amazon Web Services、Cloudflare、F5 和 Imperva。这五家公司都已收到通知并更新了他们的产品,以在其 SQL 注入检查过程中支持 JSON 语法。

  • 使用此技术的攻击者将能够绕过 WAF 的保护并使用其他漏洞来泄露数据。

Cambium 的 cnMaestro 云架构允许用户从云端远程配置和控制他们的 AP Wi-Fi 设备。

CVE-2022-1361 中滥用的 SQL 注入汇点

返回字符串作为其字符的整数列表的 SQL 查询。

返回字符串中每个字母的 ascii 值的 SQL 负载,字符的索引乘以 1,000。

一个 SQL 查询,它接受一个字符串,每隔几个字符创建一个 BIGINT

使用这种方法,我们能够在每个请求中泄露多达 8 倍的数据。这减少了我们泄露大量数据并使攻击场景变得合理所需的时间。

构建我们的有效载荷

在我们绕过了所有三个限制之后,我们留下了一个很大的有效负载,允许我们提取我们选择的任何数据:

事实上,当我们使用这个 payload 时,我们设法泄露了存储在数据库中的敏感信息,从会话 cookie 到令牌、SSH 密钥和哈希密码。

我们使用 SQLi 有效负载泄露的数据示例。

全文阅读地址:

https://claroty.com/team82/research/js-on-security-off-abusing-json-based-sql-to-bypass-waf

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

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

相关文章

绿盟SecXOps安全智能分析技术白皮书 思路方案

安全数据资产 统一管理DataOps,即 Data 和 Operations 的集成,于 2014 年首次提出。Gartner 将 DataOps 定义为“一种协作性的数据管理 实践,专注于改进组织内数据管道的通信、集成和自动化”[7]。DataOps 是一种面向流程的自动化方法&#x…

【C++笔试强训】第六天

文章目录选择题编程题选择题 1.十进制变量i的值为100&#xff0c;那么八进制的变量i的值为&#xff08;&#xff09; A 146 B 148 C 144 D 142 进制之间的转化&#xff0c;这不用多说了把 2.执行下面语句后的输出为 int I1; if(I<0)printf("****\n") ; els…

大数据Kudu(四):Kudu集群搭建

文章目录 Kudu集群搭建 一、kudu 安装包 二、节点规划及安装 1、首先在每个节点上传安装包 2、在node1、node2节点上安装如下rpm安装包 3、在node3节点上安装如下rpm安装包 4、配置Master Server 5、配置Tablet Server 6、Master节点配置所有Master Server 7、Server…

对DataFrame中元素进行定位并修改的DataFrame.iat[]方法

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 根据指定的行和列的位置号 显示或修改DataFrame中相应位置的元素 DataFrame.iat[x,y] 选择题 关于以下python代码说法错误的一项是? import pandas as pd df pd.DataFrame({"A"…

手把手教你搭建自己的FTP文件服务器

大家好&#xff0c;我是小豪&#xff0c;今天我来给大家分享如何在虚拟机上搭建自己的文件服务器 文章目录Linux上安装文件服务器FTP安装VSFTP下载dnf下载VSFTP清除防火墙的iptables缓存下载FTP匿名访问模式本地用户模式Linux上安装文件服务器FTP 由于FTP、HTTP、Telnet等协议…

【阿里实践】基于深度学习的个性化推荐系统实时化改造与升级

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点推荐技术在vivo互联网商业化业务中的实践.pdf推荐系统基本问题及系统优化路径.pdf大规模推荐类深度学习系统的设计实践.pdf荣耀推荐算法架构演进实践…

doom emacs如何安装新插件和自定义快捷键

doom emacs如何安装新插件和自定义快捷键 最近在学习和使用doom emacs&#xff0c;遇到了2个问题。 问题1: 虽然doom emacs已经配置了很多的三方插件&#xff0c;但是还有些个性化的插件如何按doom风格添加&#xff1f; 问题2: 有些快捷键自己已经熟悉&#xff0c;如何修改&am…

双目密集匹配及SGM算法

提示&#xff1a; 双目密集匹配及SGM算法前言一、双目密集匹配1、双目密集匹配概述2.、双目密集匹配四大步骤代价计算&#xff08;per-pixel-cost&#xff09;&#xff1a;释义&#xff1a;代价聚集&#xff08;cost-aggregation&#xff09;:释义&#xff1a;分类&#xff1a;…

以就业为目标,Python到底应该学什么?

前言 很多小伙伴知道Python火爆薪资高&#xff0c;开始自学&#xff0c;可是并不知道Python应该学哪些技术、学到什么程度才能找到工作。今天我们就来分析一下&#xff0c;Python学到什么程度才能找到工作。 相关&#xff1a;我是今年刚刚毕业的不入流大学的本科生&#xff0…

KingbaseES Create Index Concurrently 过程探究

前言&#xff1a; 我们知道Oracle 可以通过create index online 在线创建索引&#xff0c;而不影响其他会话修改数据&#xff0c;但Oracle 实际在online 创建索引的最后一步&#xff0c;实际还是需要进行锁升级&#xff0c;申请表级的S锁&#xff0c;因此&#xff0c;最后还是有…

STM32CUBEMX开发GD32F303(17)----内部Flash读写

概述 本章STM32CUBEMX配置STM32F103&#xff0c;并且在GD32F303中进行开发&#xff0c;同时通过开发板内进行验证。 本例程主要讲解如何对芯片自带Flash进行读写&#xff0c;用芯片内部Flash可以对一些需要断电保存的数据进行保存&#xff0c;无需加外部得存储芯片&#xff0c…

广告公司到底干什么的?欣奥诚分享

广告公司到底干什么的&#xff1f; 这篇文章从产业的角度拆分广告业&#xff0c;还原一个真实的广告业出来。 01. 它们是谁&#xff1f; 早年广告业有4类公司&#xff1a;品牌咨询类公司&#xff1b;设计创意类公司&#xff1b;媒介投放类公司&#xff1b;活动执行类公司。 …

[附源码]Python计算机毕业设计电子病历系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

前端大全之JavaScript(简称JS)

目录 一、概念 1.总体概要 2.来源说明 3.JavaScript和java的关系 4.JS的特点 5.浏览器执行JS的简介 6.JS的组成 二、引入方式 1.内部脚本例子 2. 外部脚本例子 三、使用规则 1.书写语法 2.报错的查看方式 3.输出语句 &#xff08;1&#xff09;写入警告框 &am…

SecXOps 中的数据集存储方式

安全数据资产 统一管理DataOps&#xff0c;即 Data 和 Operations 的集成&#xff0c;于 2014 年首次提出。Gartner 将 DataOps 定义为“一种协作性的数据管理 实践&#xff0c;专注于改进组织内数据管道的通信、集成和自动化”[7]。DataOps 是一种面向流程的自动化方法&#x…

基于Java开发的(控制台)模拟的多用户多级目录的文件系统【100010035】

多级文件系统 1 设计目的 为了加深对文件系统内部功能和实现过程的理解&#xff0c;设计一个模拟的多用户多级目录的文件系统&#xff0c;并实现具体的文件物理结构、目录结构以及较为完善的文件操作命令集。 2 设计内容 2.1系统操作 操作命令风格&#xff1a;本文件系统的…

110115-07-6,Ac-LLM-CHOCalpain 抑制剂

Ac-LLM-CHO (ALLM) is a potent competitive inhibitor of cathepsin L (Ki0.6 nM) and cathepsin B (Ki100 nM). Ac-LLM-CHO (ALLM)是组织蛋白酶L (Ki0.6 nM)和组织蛋白酶B (Ki100 nM)的有效竞争性抑制剂。 编号: 124055中文名称: Calpain 抑制剂 II&#xff1a; Ac-Leu-Leu-M…

[附源码]Node.js计算机毕业设计点餐系统设计Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

游戏开发59课 性能优化

7. 耗电优化 游戏耗电和游戏卡并无必然联系&#xff0c;有些游戏在某些设备上虽然运行很流畅&#xff0c;但发现耗电很厉害&#xff0c;玩了不到半个小时&#xff0c;电量已经出现警报。游戏耗电的原因主要是因为&#xff1a;CPU占用普遍高&#xff0c;内存操作频繁&#xff0…

Spring MVC学习 | 获取请求参数

文章目录一、ServletAPI获取二、控制器方法形参获取2.1 不使用RequestParam注解2.2 使用RequestParam注解2.2.1 简介&使用2.2.2 相关注解2.3 实体类类型的形参三、中文乱码问题3.1 在tomcat中设置编码&#xff08;了解&#xff09;3.2 使用Spring MVC内部过滤器设置编码学习…