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

embedded/2025/1/8 11:35:50/
#知识点

1、安全开发-框架技术-ThinkPHP

2、安全开发-框架安全-版本&写法

3、安全开发-ThinkPHP-代码审计案例

类别

组件/框架

说明

[Web框架]

Laravel

现代化、功能全面的框架,适合大多数Web应用。

Symfony

高度模块化、功能强大的框架,适合复杂应用。

CodeIgniter

轻量级框架,适合快速开发。

Zend Framework (Laminas)

企业级框架,适合大规模应用,具有高扩展性和性能。

Yii

高性能框架,适合快速开发和大规模应用。

[数据库组件]

Doctrine ORM

强大的ORM工具,支持复杂的查询和映射。

Eloquent ORM

Laravel内置ORM,简化数据库操作。

PDO

PHP的数据库抽象层,支持多种数据库引擎。

RedBeanPHP

轻量级ORM,自动创建和管理数据库表。

[模板引擎]

Twig

灵活、现代的模板引擎,常用于Symfony项目。

Blade

Laravel内置模板引擎,支持模板继承和控制结构。

Smarty

经典模板引擎,适合中大型项目。

Mustache

轻量级跨语言模板引擎,支持PHP、JavaScript等。

[路由组件]

FastRoute

高性能PHP路由库,适用于小型应用和API。

AltoRouter

轻量级路由库,适合小型项目,易于配置。

Symfony Routing

Symfony的路由组件,适合复杂应用。

[认证与授权]

OAuth2 Server PHP

实现OAuth2协议的PHP库,适用于API认证。

JWT (JSON Web Token)

轻量级身份验证方案,适合API认证。

PHP-Auth

简单的用户认证库,适用于中小型Web应用。

[支付集成]

Stripe PHP SDK

集成Stripe支付功能,支持信用卡支付、订阅等。

PayPal SDK for PHP

集成PayPal支付功能,支持支付、退款等。

[邮件发送]

PHPMailer

功能强大的邮件发送库,支持SMTP、POP3等协议。

SwiftMailer

另一款流行的邮件发送库,支持多种邮件功能。

Mailgun PHP SDK

Mailgun的官方SDK,用于通过Mailgun API发送邮件。

[文件管理]

Flysystem

文件存储抽象库,支持多种存储方式(如本地、Amazon S3、FTP等)。

Symfony Filesystem

Symfony的文件系统组件,提供简单的文件操作API。

Intervention Image

图片处理库,支持裁剪、调整大小、水印等功能。

[缓存与性能]

Redis

内存数据存储系统,用于缓存、消息队列等,提升性能。

Memcached

内存缓存系统,适用于高并发应用。

Symfony Cache

Symfony缓存组件,支持多种缓存后端。

Laravel Cache

Laravel内置缓存系统,提升Web应用性能。

[日志管理]

Monolog

强大的日志库,支持多种日志渠道(如文件、数据库、邮件等)。

Log4PHP

Apache Log4j的PHP实现,适用于复杂日志功能。

[任务队列]

Laravel Queue

Laravel内置队列系统,支持延迟任务、异步处理。

Resque

基于Redis的任务队列库,适用于异步任务处理。

RabbitMQ

开源消息代理服务,用于任务调度和消息传递。

[WebSocket与实时通信]

Ratchet

用于实现WebSocket服务,适合在线聊天、实时通信。

Swoole

高性能协程框架,支持WebSocket、TCP、UDP等协议,适用于高并发实时应用。

[测试与调试]

PHPUnit

PHP标准单元测试框架,广泛用于自动化测试。

Xdebug

PHP调试工具,支持堆栈跟踪、性能分析、断点调试等功能。

[富文本编辑器]

KindEditor

一个轻量级且功能丰富的富文本编辑器,支持图片上传、插入视频等,适用于PHP开发的Web项目。

TinyMCE

开源的富文本编辑器,支持多种格式的文本编辑,插件丰富,易于集成。

CKEditor

高度可定制的富文本编辑器,支持图片、文件上传、富文本格式化等功能,广泛用于Web项目中。

Froala Editor

轻量级、现代的富文本编辑器,支持图像处理、视频嵌入、内嵌富文本等,适合复杂的Web应用。

Quill

开源富文本编辑器,功能强大、轻量级,支持图片、视频、格式设置等功能,适合单页面应用。

Summernote

基于jQuery的轻量级富文本编辑器,支持文本格式化、图片上传等,适合中小型Web项目。

Trumbowyg

轻量级的富文本编辑器,功能简单但支持基本的文本编辑、图片上传、视频插入等。

Redactor

现代的富文本编辑器,功能丰富,支持图片、文件上传等,适合多种Web应用。

[图片上传组件]

Dropzone.js

支持拖拽上传和多文件上传的JavaScript库,易于与PHP集成,常用于图片、文件上传功能。

FilePond

高度可定制的文件上传库,支持图片预览、验证、上传进度等,适合需要精美上传功能的Web项目。

Fine Uploader

支持多种文件上传方式的组件,支持多文件上传、拖拽上传,支持PHP处理后台。

Plupload

支持多种文件上传方式(包括HTML5和Flash),可以与PHP后台集成,广泛用于Web应用中。

[图片处理组件]

ImageMagick

强大的图像处理库,支持图像格式转换、剪裁、旋转、加水印等多种功能,适用于PHP处理图像。

GD Library

PHP内置图像处理库,支持图像创建、缩放、裁剪、色调调整等功能。

Intervention Image

PHP图像处理库,支持裁剪、缩放、加水印等,易于与Laravel集成。

一、TP(thinkphp)框架-开发技术

参考:https://www.kancloud.cn/manual/thinkphp5/118003(thinkphp开发手册,学习此框架的语法)

前言了解MVC:

1、配置架构-导入使用

入口配置,数据库配置,调试开关等

2、路由访问-URL访问

URL访问模式,文件目录对应关系等

路由访问:

法一:http://192.168.1.2:92/index.php/admin/index/test?id=123124

可以通过此url地址,推断对应的文件目录为admin,方法为test,也可根据此特征,判断使用了MVC路由访问;

法二:http://192.168.1.2:92/index.php?s=admin/index/test

可以通过此url地址,推断对应的文件目录为admin,方法为test,也可根据此特征,判断使用了MVC路由访问;

3、请求变量-数据接受

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

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

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

数据库查询语句

5、前端页面渲染-MVC模型(Model模板+View视图+Control控制器)

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

二、TP框架-写法安全

1、thinkphp代码写法逻辑

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

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

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

2、框架版本安全

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

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

纯内置写法虽然没有常规的sql注入漏洞,但是也存在注入漏洞

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

如5.0.15版本和5.0.22版本存在的漏洞不一样

三、TP框架-代审案例:

WeMall-TP5框架开发(源码来源->站长之家)

补:

1、框架安全代码审计思路:

①学会框架的开发手册->即框架语法怎么写的->目标:看得懂框架代码

②在使用框架开发时->代码的写法(纯自己写的代码+一半自己写的代码/一半框架的写法+纯框架语法写法)->代码审计时,不同的代码写法会产生漏洞点

③如果是纯框架语法写法->判断/查询框架的版本->找该版本的历史漏洞->a、版本通杀直接利用即可+b、有点框架漏洞存在于框架的具体代码使用位置

2、简单挖掘框架漏洞的思路

判断是什么框架->框架版本->历史漏洞->直接利用


http://www.ppmy.cn/embedded/152266.html

相关文章

Ubuntu 下载安装 Consul1.17.1

下载 来到 Consul 的下载页面:https://developer.hashicorp.com/consul/install?product_intentconsul 上面标注的地方可以切换你想要的版本,复制下载链接,使用 wget 下载这个文件: wget https://releases.hashicorp.com/consu…

每天你好20250108(距离春节21天!!!)

亲爱的朋友们,大家早上好! 🌞 今晨乃 2025 年 1 月 8 日,星期三,农历乙巳[蛇]年十一月十九日。祥蛇纳福,灵辉熠熠,旭日初升,仿若玉盘倾落金芒,穿破霭霭晨雾,…

【QT】增删改查 XML 文件的类

使用单例类模板实现的对XML文件的节点、属性、文本进行增删改查&#xff0c;可以直接用&#xff01; 直接POST代码&#xff0c;比较简单好用。 针对以下格式的xml文件比较适用 每个节点的名称都不一样&#xff0c;节点包含了各种属性。 <?xml version"1.0" enco…

Unity:删除注册表内的项目记录

然后WinR按键输入regedit 打开注册表 在注册表 HKEY CURRENT USER—>SOFTWARE—>Unity—>UnityEditor—>DefaultCompany —>language_Test 中&#xff0c;删除我们的之前存储的语言环境数据。在 “ 三、文本调用和替换 ” 测试时已经将语言环境存储到注册表中了…

【代码随想录】刷题记录(91)-根据身高重建队列

题目描述&#xff1a; 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构…

RK3568-ubuntu旋转显示和触摸

旋转屏幕显示 临时生效&#xff1a;xrandr -o <normal,inverted,left,right,0,1,2,3> 永久生效&#xff1a;/etc/X11/Xsession.d/55gnome-session_gnomerc最后一行添加临时生效命令旋转屏幕触摸 方法1&#xff1a;cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc…

【人工智能深度学习框架】——深入详解人工智能深度学习框架之TensorFlow高级功能:Keras接口、分布式训练,快速搭建和训练深度学习模型

深入详解人工智能深度学习框架之 TensorFlow 高级功能&#xff1a;Keras 接口、分布式训练 TensorFlow 是目前最为流行的深度学习框架之一&#xff0c;广泛应用于学术研究和工业生产中。TensorFlow 的高级功能使得开发者可以更加高效地构建、训练和部署深度学习模型。下面我们…

【20250103】AI驱动的通用下肢外骨骼机器人系统以实现社区步行辅助

引言&#xff1a;AI技术的发展日新月异&#xff0c;也开始改变机器人研究领域的许多传统模型和研究方法&#xff0c;通过结合AI方法、数据、物理仿真等工具和平台实现传统机器人领域无法实现的建模、规划及控制方法是当前的一个研究热点。本论文是典型的AI驱动的外骨骼机器人控…