Web开发-PHP应用TP框架MVC模型路由访问模版渲染安全写法版本漏洞

我们先使用/index.php/index/index/test,就是图中的test()方法

/index.php/index/index/index,这个回显就是111

http://127.0.0.1:83/index.php/index/index/test2?x=123456

public function test2()
{$x=$_GET['x'];return $x;
}

这里再做一个案例更详细一点,我们这里定义了一个login,我们如何得到后台登陆回显呢,按照TP官方方式尝试,然后我们更换了文件夹,上面的更改为namespace app\admin\controller;

http://127.0.0.1:83/index.php/admin/index/login

这里成功了,那就再次解释一遍,就是index.php/这个是固定的,然后/admin就是我们的admin模块,也就是这个文件夹,控制器就是index.php,操作就是login这个方法,这样我们就能用TP官方方法访问了

第二种访问方法就是

http://127.0.0.1:83/index.php?s=/admin/index/login

早期版本,TP3版本附近

有的时候还会出现index.php?s=admin&m=index&a=login

这是什么意思呢,就是三个参数分别指向模块、控制器、操作,也就是我的admin目录,index模块,login操作

这样我们就能逆推功能点,这样可以在白盒应用中体现出来

3、请求变量-数据接受

请求对象,提交方法,助手函数等

这里使用REQUEST

这里就接受到信息了,这里定义的方式太多,可以自行选择使用哪种方式获取信息

4、数据库操作-应用对象

引用DB类,基本查询,助手函数等

public function loginin(Requset $request)
{$id = input('get.id');$data=Db::table('admin')->where('id',$id)->find();var_dump($data);
}

THINKPHP

这里就能上梭哈工具检测,并且能一键利用

5、前端页面渲染-MVC模型

引擎配置,渲染变量,模版输出等

TP框架-写法安全

1、自写代码逻辑

例子1:自己不合规的代码写法

自己审计代码,看一下他的缺陷

例子2:一半框架一半自写代码

例子3:框架标准内置代码写法

官方写法就看版本漏洞,通杀或者找逻辑,有sql注入需要有相应的代码功能

2、框架版本安全

https://github.com/Mochazz/ThinkPHP-Vuln

例子1:写法内置安全绕过-TP5-SQL注入

例子2:内置版本安全漏洞-TP5-代码执行

TP框架-代审案例:

WeMall-TP5框架开发

这里拿一套源码,先看一下thinkphp版本号,然后找历史漏洞

这里打开发现什么都没有,伪静态,搭建时配置一下文件

搭建时候配置一下即可

上一下梭哈工具测试一下漏洞

拿下s

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

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

相关文章

FreeRTOS列表系统深度解析

FreeRTOS列表系统深度解析 一、核心数据结构 1. 列表控制块 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 当前列表项数量ListItem_t * pxIndex; // 遍历指针(用于轮询调度)MiniListItem_t xListEnd; …

《Linux编译器:gcc/g++食用指南》

坚持用 清晰易懂的图解 代码语言,让每个知识点变得简单! 🚀呆头个人主页详情 🌱 呆头个人Gitee代码仓库 📌 呆头详细专栏系列 座右铭: “不患无位,患所以立。” 《Linux编译器:GCC…

SparkKV转换算子实战解析

目录 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子应用理解 reduceByKey和groupByKey的区别 groupByKeymapValues实现KV数据的V的操作 改进用reduceByKey groupby通过K和通过V分组的模板代码 问题集锦 宝贵的经验 这里会…

深度解析 TCP 三次握手与四次挥手:从原理到 HTTP/HTTPS 的应用

TCP 的三次握手和四次挥手是网络通信的基石,无论是 HTTP 还是 HTTPS,它们都依赖 TCP 提供可靠的传输层服务。本文将用万字篇幅,结合 Mermaid 图表和代码示例,深入讲解 TCP 三次握手、四次挥手的原理、过程、状态变化,以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、创建虚拟机一台32G内存,16核心的Win11,已经安装了Hyper-V 管理器。然后也下载了CentOS-Stream-9-latest-x86_64-dvd1.iso的镜像文件。这里Hyper-V创建虚拟机的过程就不赘述了,如果出现虚拟机加载不到镜像的问题,先把这个使用安…

Pygame如何制作小游戏

以下是 Pygame 的详细使用指南,从安装到开发完整游戏的步骤说明,包含代码示例和最佳实践: 一、安装与环境配置 1. 安装 Pygame pip install pygame2. 验证安装 import pygame pygame.init() print(pygame.version.ver) # 应输出版本号&am…

@【JCIDS】【需求论证】联合能力集成与开发系统知识图谱

JCIDS(联合能力集成与开发系统)知识图谱 1. JCIDS概述 2. JCIDS的提出背景 3. JCIDS核心流程 4. JCIDS分析方法 5. JCIDS优势 6. JCIDS与采办系统的关系 7. JCIDS知识图谱结构 8. 对我的启示 9.JCIDS(联合能力集成与开发系统)相关术语列表 10. 参考文献 1. JCIDS概述 定义:…

每天学一个Linux命令(38):vi/vim

每天学一个 Linux 命令(38):vi/vim vi 和 vim(Vi IMproved)是 Linux 和 Unix 系统中功能强大的文本编辑器。vim 是 vi 的增强版,提供语法高亮、多级撤销、插件支持等更多功能。掌握 vi/vim 是 Linux 系统管理员的必备技能之一。 1. 命令简介 vi:经典的文本编辑器,几乎…

【PZ-ZU49DR-KFB】:璞致电子 UltraScale+ RFSoC 架构下的软件无线电旗舰开发平台

璞致电子 PZ-ZU49DR-KFB 开发板基于 Xilinx ZYNQ UltraScale RFSoC XCZU49DR 主控制器,以 "ARMFPGA 异构架构" 为核心,融合高带宽信号采集、高速数据处理与灵活扩展能力,专为专业工程师打造的软件无线电(SDR&#xff09…

力扣106:从中序与后序遍历序列构造二叉树

力扣106:从中序与后序遍历序列构造二叉树题目思路代码题目 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 思路 我们首先要知道中序遍历和后序…

IDEA JAVA工程入门

Maven配置: IDEA -> settings -> Build, Execution, Deployment -> Build Tools -> MavenMaven home pathUser setting file : 特定仓库下载依赖包,自动下载(界面右边M图标点开,)local repository (本地仓库&#xff…

Spring依赖注入:从原理到实践的自学指南

Spring依赖注入:从原理到实践的自学指南 一、什么是依赖注入? 依赖注入(Dependency Injection, DI)是Spring框架实现控制反转(IoC)的核心手段。其核心思想是:对象不再自己创建依赖项&#xff…

3_软件重构_组件化开发实例方法论

1、上期回顾上次内容核心的地方有两个,①是C多态基类的指针指向派生类,用于初始化各个插件。②是使用C语言的dlopen函数“动态加载”各个插件,实现用户根据契约接口自定义开发插件,极大程度地实现了软件上的解耦。③再进一步&…

C#接口的定义与使用

第1章 接口(interface)是什么1.1 定义• 接口是一组“能力”或“契约”的抽象描述,只规定“能做什么”,不规定“怎么做”。• 在 C# 中,接口是一种完全抽象的类型(fully abstract type)。 • 关…

【STM32】HAL库中的实现(三):PWM(脉冲宽度调制)

🔧 HAL库中的实现:PWM(脉冲宽度调制) PWM(Pulse Width Modulation)是基于定时器(TIM)产生的周期性脉冲信号,广泛应用于:① 电机调速;② LED 亮度控…

GitHub 趋势日报 (2025年08月03日)

🚀 GitHub 趋势日报 (2025年08月03日) 📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图751dyad362LLMs-from-scratch291…

Java后端高频面试题

Java后端高频面试题 目录 Java集合框架Java并发编程JVM相关MySQL数据库Redis缓存Spring框架 Java集合框架 HashMap的数据结构是什么,为什么在JDK8要引入红黑树? HashMap数据结构: JDK7:数组 链表JDK8:数组 链表…

37. line-height: 1.2 与 line-height: 120% 的区别

概述 line-height 是 CSS 中用于控制文本行间距的重要属性。虽然 line-height: 1.2 和 line-height: 120% 看似相同,但它们在计算方式上存在关键区别,尤其是在继承和计算值方面。1. 计算方式不同写法类型计算方式说明line-height: 1.2无单位(…

蓝桥杯----DS1302实时时钟

(六)、DS1302实时时钟1、原理(图 二十六)DS1302通过三线串行接口与单片机进行通信。微控制器可以通过设置RST引脚为高电平来使能DS1302,并通过SCK引脚提供串行时钟信号,然后通过I/O引脚进行数据的读写操作。…

C++对象访问有访问权限是不是在ide里有效

在C中,对象的访问权限(即公有(public)、保护(protected)和私有(private)成员的访问)是编译时的一部分,而不是运行时。这意味着,无论是在IDE&#…