news 2026/7/5 19:30:02

第27天 安全开发-PHP应用TP框架路由访问对象操作内置过滤绕过核心漏洞

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第27天 安全开发-PHP应用TP框架路由访问对象操作内置过滤绕过核心漏洞

第27天 安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

thinkphp5.1

application/ └── index/ ← 模块名 index └── controller/ ← 控制器目录(不参与 URL) └── Index.php ← 控制器文件
index.php / 模块 / 控制器 / 方法 访问:index.php / index / Index / index app\index\controller\Index::index()

测试代码
http://thinkphp5.com/index.php/index/index/hello/name/112719413
<?phpnamespaceapp\index\controller;usethink\Request;classIndex{publicfunctionindex(){return123;}publicfunctionhello(Request$request){return'hello,'.$request->param('name');}}

可以添加test目录进行测试

MVC

model view controller

模版 视图 控制器

MySQL测试
<?phpnamespaceapp\test\controller;usethink\Db;usethink\Request;classTest{publicfunctionindex(){return'nskjkdbksbd';}publicfunctionhello(Request$request){return'7777,'.$request->param('name');}publicfunctiontestsql(){$id=request()->param('x');$data=Db::table('new')->where('id',$id)->select();returnjson($data);}}
http://thinkphp5.com/index.php/test/test/testsql/x/1 http://thinkphp5.com/index.php/test/test/testsql/x/1%20or%201=1 内置过滤,只有1的时候有用,如果是"1 and 2=1"之类的没有任何反应

实验结果表名:使用thinkphp有内置过滤,比原生态代码强,防止SQL注入

1、使用TP框架操作数据库 默认是收到框架内置过滤保护

2、原生态的数据库操作 如果没有过滤就会受到SQL注入攻击

文件上传

在之前的test/controller/Test.php 改成下面代码

<?phpnamespaceapp\test\controller;usethink\Db;usethink\Request;publicfunctionupload(){// 获取表单上传文件 例如上传了001.jpg$file=request()->file('image');// 移动到框架应用根目录/uploads/ 目录下$info=$file->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move('../uploads');if($info){// 成功上传后 获取上传信息// 输出 jpgecho$info->getExtension();// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpgecho$info->getSaveName();// 输出 42a79759f284b767dfcb2a0197904287.jpgecho$info->getFilename();}else{// 上传失败获取错误信息echo$file->getError();}}

在public目录里创一个upload.html文件

<formaction="/index.php/test/test/upload"enctype="multipart/form-data"method="post"><inputtype="file"name="image"/><br><inputtype="submit"value="上传"/></form>
http://thinkphp5.com/upload.html 访问上传测试即可
view
view渲染

渲染模板最常用的是控制器类在继承系统控制器基类(\think\Controller)后调用fetch方法,调用格式:

fetch(‘[模板文件]’[,‘模板变量(数组)’])

模板文件的写法支持下面几种:

用法描述
不带任何参数自动定位当前操作的模板文件
[模块@][控制器/][操作]常用写法,支持跨模块
完整的模板文件名直接使用完整的模板文件名(包括模板后缀)

下面是一个最典型的用法,不带任何参数:

<?phpnamespaceapp\index\controller;usethink\Controller;usethink\Request;classIndexextendsController{publicfunctionindex(){return$this->fetch();publicfunctionhello(Request$request){return'hello,'.$request->param('name');}}

表示系统会按照默认规则自动定位模板文件,其规则是:

当前模块/view/当前控制器名(小写)/当前操作(小写).html
application/ └── index/ ← 模块名 index └── controller/ ← 控制器目录(不参与 URL) └── Index.php ← 控制器文件 └── view/ └── index/ └── index.html
访问:http://thinkphp5.com/index.php/index/index/index
view赋值
application/ └── index/ ← 模块名 index └── controller/ ← 控制器目录(不参与 URL) └── Index.php ← 控制器文件 └── view/ └── index/ └── index.html └── test.html

Index.php

<?phpnamespaceapp\index\controller;usethink\Controller;usethink\Request;classIndexextendsController{publicfunctionindex(){// return 123;$this->assign('name','ThinkPHP');$this->assign('email','thinkphp@qq.com');// 或者批量赋值$this->assign(['name'=>'ThinkPHP','email'=>'thinkphp@qq.com']);// 模板输出return$this->fetch('index');//这里可以修改,换成test}}

index.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>{$name}</title></head><body>{$email}</body></html>

test.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>{$email}</title></head><body>这里是test</body></html>

看安全

1、版本漏洞

版本的内置安全漏洞

2、安全写法

3、半安全+半原生

4、原生写法

弹幕

思路流程,根据抓包获取特征文件,去github或者gitee搜索特征文件,尝试找到源码。对源码进行下载,如果是thinphp则查看版本,去cve找到漏洞进行复现。如果是别的那就自己审计

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 16:09:01

中文提示超强解析!Z-Image-ComfyUI实战分享

中文提示超强解析&#xff01;Z-Image-ComfyUI实战分享 在AI图像生成技术迅猛发展的今天&#xff0c;如何高效、精准地将自然语言转化为高质量视觉内容&#xff0c;已成为设计师、产品经理和开发者共同关注的核心问题。尤其是在中文语境下&#xff0c;传统文生图模型常因文化语…

作者头像 李华
网站建设 2026/7/1 15:51:42

DeepSeek-R1部署详解:多实例负载均衡

DeepSeek-R1部署详解&#xff1a;多实例负载均衡 1. 引言 1.1 本地化大模型推理的现实需求 随着大语言模型在逻辑推理、代码生成和数学推导等任务上的能力不断提升&#xff0c;越来越多企业与开发者希望将这类能力集成到本地系统中。然而&#xff0c;主流大模型通常依赖高性…

作者头像 李华
网站建设 2026/6/12 12:44:35

Qwen3-Embedding-4B技术解析:用户自定义指令功能

Qwen3-Embedding-4B技术解析&#xff1a;用户自定义指令功能 1. 技术背景与核心价值 随着大模型在信息检索、语义理解、跨语言处理等场景的广泛应用&#xff0c;高质量文本嵌入&#xff08;Text Embedding&#xff09;能力成为构建智能系统的关键基础设施。传统的通用语言模型…

作者头像 李华
网站建设 2026/7/4 10:51:06

亲自动手试了科哥镜像,AI抠图原来可以这么快

亲自动手试了科哥镜像&#xff0c;AI抠图原来可以这么快 1. 引言&#xff1a;为什么需要高效的图像抠图工具&#xff1f; 在数字内容创作、电商运营和视觉设计等领域&#xff0c;高质量的图像抠图是一项高频且关键的任务。传统依赖Photoshop等专业软件的手动操作不仅耗时&…

作者头像 李华
网站建设 2026/7/2 8:01:16

5分钟上手图像修复!fft npainting lama一键移除水印和物体

5分钟上手图像修复&#xff01;fft npainting lama一键移除水印和物体 1. 快速入门&#xff1a;图像修复的现代解决方案 在数字图像处理领域&#xff0c;图像修复&#xff08;Image Inpainting&#xff09;是一项关键任务&#xff0c;旨在通过算法自动填充图像中缺失或被遮挡…

作者头像 李华
网站建设 2026/7/3 11:46:11

快速构建儿童内容库:批量生成萌宠图片的Qwen实战教程

快速构建儿童内容库&#xff1a;批量生成萌宠图片的Qwen实战教程 在儿童教育、绘本创作、动画设计等领域&#xff0c;高质量、风格统一的可爱动物图像资源需求巨大。然而&#xff0c;传统美术绘制成本高、周期长&#xff0c;难以满足快速迭代的内容生产需求。随着大模型技术的…

作者头像 李华