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

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云防火墙,500元 1000GB
简介: 基于JSON的SQL注入攻击触发需要更新Web应用程序防火墙

640.png


安全研究人员开发了一种通用的 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 支持进行审查。

640.png


执行摘要

  • 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 的保护并使用其他漏洞来泄露数据。

640.png


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

640.png


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

640.png


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


640.png


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

640.png


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

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

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

640.png


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

640.png


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

全文阅读地址:

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

相关文章
|
3月前
|
XML JSON 前端开发
【Web前端揭秘】XML与JSON:数据界的双雄对决,你的选择将如何改写Web世界的未来?
【8月更文挑战第26天】本文深入探讨了XML和JSON这两种广泛使用的数据交换格式在Web前端开发中的应用。XML采用自定义标签描述数据结构,适用于复杂层次数据的表示,而JSON则以键值对形式呈现数据,更为轻量且易解析。通过对两种格式的示例代码、结构特点及应用场景的分析,本文旨在帮助读者更好地理解它们的差异,并根据实际需求选择最合适的数据交换格式。
60 1
|
2月前
|
SQL 监控 小程序
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
137 58
|
12天前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
22 0
|
2月前
|
SQL 安全 数据库
惊!Python Web安全黑洞大曝光:SQL注入、XSS、CSRF,你中招了吗?
在数字化时代,Web应用的安全性至关重要。许多Python开发者在追求功能时,常忽视SQL注入、XSS和CSRF等安全威胁。本文将深入剖析这些风险并提供最佳实践:使用参数化查询预防SQL注入;通过HTML转义阻止XSS攻击;在表单中加入CSRF令牌增强安全性。遵循这些方法,可有效提升Web应用的安全防护水平,保护用户数据与隐私。安全需持续关注与改进,每个细节都至关重要。
128 5
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,却也面临着SQL注入、XSS与CSRF等安全威胁。本文将剖析这些常见攻击手段,并提供示例代码,展示如何利用参数化查询、HTML转义及CSRF令牌等技术构建坚固防线,确保Python Web应用的安全性。安全之路永无止境,唯有不断改进方能应对挑战。
67 5
|
1月前
|
SQL 安全 数据库
Python防止SQL注入攻击的方法
Python防止SQL注入攻击的方法
51 0
|
2月前
|
SQL 安全 数据安全/隐私保护
Python Web安全大挑战:面对SQL注入、XSS、CSRF,你准备好了吗?
在构建Python Web应用时,安全性至关重要。本文通过三个真实案例,探讨了如何防范SQL注入、XSS和CSRF攻击。首先,通过参数化查询替代字符串拼接,防止SQL注入;其次,利用HTML转义机制,避免XSS攻击;最后,采用CSRF令牌验证,保护用户免受CSRF攻击。这些策略能显著增强应用的安全性,帮助开发者应对复杂的网络威胁。安全是一个持续的过程,需不断学习新知识以抵御不断变化的威胁。
115 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
47 1
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
在Web开发领域,Python虽强大灵活,但安全挑战不容小觑。本文剖析Python Web应用中的三大安全威胁:SQL注入、XSS及CSRF,并提供防御策略。通过示例代码展示如何利用参数化查询、HTML转义与CSRF令牌构建安全防线,助您打造更安全的应用。安全是一场持久战,需不断改进优化。
46 3
|
2月前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
87 6