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

简介: 基于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

相关文章
|
10月前
|
弹性计算 监控 网络安全
如何轻松使用AWS Web应用程序防火墙?
AWS WAF是Web应用防火墙,可防护常见网络攻击。通过创建Web ACL并设置规则,保护CloudFront、API网关、负载均衡器等资源。支持自定义规则与OWASP预定义规则集,结合CloudWatch实现监控日志,提升应用安全性和稳定性。
|
监控 安全 网络协议
常见防火墙攻击和增强防火墙安全性措施
防火墙是网络的守护者,能有效阻断不必要的端口和有害IP地址。但最出色的防火墙也可能被攻破或因流量过大而失效。例如,万豪国际曾因防火墙被突破,导致约5亿客户信息泄露,包括姓名、地址、护照号码等。攻击手段如DDoS、流量放大、应用层攻击等,可使防火墙不堪重负。为增强安全性,需及时更新防火墙等措施。EventLog Analyzer等日志检测工具可帮助监控防火墙和服务器日志,提供实时事件关联和告警,确保网络安全。
846 15
|
SQL 安全 Java
除了Flask框架,还有哪些框架能防止SQL注入攻击?
这些框架都在安全方面有着较好的表现,通过它们的内置机制和安全特性,可以有效地降低 SQL 注入攻击的风险。然而,无论使用哪个框架,开发者都需要具备良好的安全意识,正确配置和使用框架提供的安全功能,以确保应用的安全可靠。同时,持续关注安全更新和漏洞修复也是非常重要的。
755 162
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
938 11
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
395 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
SQL 监控 小程序
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
在微信小程序中使用 Vant 时如何防止 SQL 注入攻击?
605 58
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
963 2
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
427 6
|
SQL 安全 网络安全
SQL安装程序规则错误解决方案
在安装SQL Server时,遇到安装程序规则错误是一个比较常见的问题
1174 5