Spring框架漏洞复现及解析

Spring框架漏洞复现与分析SpringSecurityOAuth2远程命令执行漏洞(CVE-2016-4977)漏洞简介:SpringSecurityOAuth是一个为Spring框架提供安全认证支持的模块。
在使用whitelabelviews处理错误时,由于使用了SpringsExpressionLanguage(SpEL),攻击者在获得授权的情况下可以通过构造恶意参数来远程执行命令。
实验原理:该版本的Spring存在错误页面,参数捕获没有过滤,导致直接在服务器上做系统权限。
可以使用Springs表达式语言(SpEL)构造恶意参数来执行命令。
实验环境:攻击机(kali):192.168.200.14,目标机(Ubuntu):192.168.200.47。
基于Vulhub平台复现了实验。
实验流程:输入环境条件,进入环境。
关键是提供了URL,触发点是:${233*233},替换掉bounceshell生成的payload就可以了。
构建bounceshell,使用的编码网站如下:ares-x.com/tools/runtim...在Kali中监听8888端口,然后在浏览器中运行。
弹跳shell成功。
SpringCloudFunctionSpEL代码注入漏洞(CVE-2022-22963)简介:在SpringCloudFunction3.1.6、3.2.2及更早版本中,用户在使用路由功能时,可以提供特制的SpEL作为路由表达式,从而导致远程代码执行和访问本地资源。
实验环境:攻击机(kali):192.168.200.14,目标机(Ubuntu):192.168.200.47。
基于Vulhub平台复现了实验。
实验流程:输入环境条件,进入环境。
使用提供的编码网站代码修改POC内容,捕获数据包,丢弃数据包,成功重新附加shell(监听8888端口)。
SpringDataRest远程命令执行漏洞(CVE-2017-8046)漏洞简介:当Spring-data-rest服务器处理PATCH请求时,攻击者可以制作恶意PATCH请求并将其发送到spring-date服务器-rest,通过构造用于执行任意Java代码的JSON数据。
实验环境:攻击机(kali):192.168.200.14,目标机(Ubuntu):192.168.200.47。
基于Vulhub平台复现了实验。
实验流程:输入环境条件,进入环境。
命令运行,访问192.168.200.47:8080/cus...,发送数据包,并丢弃数据包后面的页面。
然后进入容器并验证文件是否已创建并且弹跳shell是否成功。
CVE-2022-22978(Spring-security身份验证绕过漏洞)漏洞简介:SpringSecurity是Spring项目中的一个安全模块,可以轻松与Spring项目无缝集成。
使用RegexRequestMatcher配置权限时,正则表达式中包含“.”攻击者可以制作恶意数据包来绕过身份认证。
实验环境:攻击机(kali):192.168.200.14,目标机(Ubuntu):192.168.200.47。
基于Vulhub平台复现了实验。
实验流程:输入环境条件,进入环境。
使用如图所示的payload权限变为admin。
在Springsecurity中,换行符可以用来绕过授权认证。
\r的URL编码为%0d,\r的URL编码为%0a。

【网络安全】针对HTTP/2协议的HTTPDesync攻击

本文揭露了针对HTTP/2协议的HTTPDesync攻击。
这种攻击利用知名网站的漏洞,涉及客户端劫持、特洛伊木马缓存和凭证盗窃。
攻击者利用HTTP/2的特性,例如Content-Length标头验证不充分等,对Netflix、ALB等应用程序进行恶意操作。
以Netflix为例,攻击者发送了降级的HTTP/2请求,导致后端由于内容长度错误而提前终止解析,从而实现内容注入和用户重定向。
同样,针对ALB的攻击会利用Transfer-Encoding连接特定标头,从而允许攻击者利用H2.TEHTTPDesync来影响使用ALB的网站。
HTTP/2的压缩功能为设置标头值的字符位置提供了灵活性。
例如,NetlifyCDN中的漏洞允许通过“\r\n”进行标头注入。
Atlassian和Apache中的标头处理漏洞允许攻击者通过换行符或冒号注入标头名称或值,从而导致进一步的攻击。
隐藏隧道攻击利用前后端连接的特点,可以间接影响其他用户。
如何检查漏洞需要创新,例如通过潜入完整请求来检测HTTPDesync。
请求隧道可以绕过前端规则,但通常需要泄漏内部标头才能获取敏感信息。
综上所述,避免HTTP/2降级是防止此类攻击的关键,同时还需要增强服务器头处理和前端连接管理来保护网络安全。