PHP框架Laravel最新SQL注入漏洞形成的原因
发表于:2024-10-02 作者:千家信息网编辑
千家信息网最后更新 2024年10月02日,本篇内容主要讲解"PHP框架Laravel最新SQL注入漏洞形成的原因",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP框架Laravel最新SQL注入
千家信息网最后更新 2024年10月02日PHP框架Laravel最新SQL注入漏洞形成的原因
本篇内容主要讲解"PHP框架Laravel最新SQL注入漏洞形成的原因",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"PHP框架Laravel最新SQL注入漏洞形成的原因"吧!
PHP知名开发框架Laravel,前几天在官方博客通报了一个高危SQL注入漏洞,这里简单分析下。
首先,这个漏洞属于网站coding写法不规范,官方给了提示:
但官方还是做了修补,升级最新版本V5.8.7可修复。
我们先定位下这里:
Illuminate\Validation\Rule
官方推荐的写法是:
Rule::unique('users')->ignore($id),
如果网站coding没有预先对$id的值做处理时,用户可以直接传递恶意数据给ignore函数,就会导致SQL注入。
我们来跟一下函数:
\Illuminate\Validation\Rules\Unique.phpclass Unique{...public function ignore($id, $idColumn = null){if ($id instanceof Model) {return $this->ignoreModel($id, $idColumn); }$this->ignore = $id;$this->idColumn = $idColumn ?? 'id';return $this; }
这里我们不考虑把$id写成实例的情况,$id是用户可控的话,$idColumn直接写为空即可,最后赋值情况如下:
$this->ignore = $id;$this->idColumn = 'id';
如果网站代码类似这样构造的话,黑客输入的值就属于可控状态:
$id = $request->input('id');
最后我们会走到这儿:
Illuminate\Validation\Rules\Unique.phppublic function __toString(){ ... ... }
我们看下关键的代码变更:
Illuminate\Validation\Rules\Unique.phpV5.8.7【最新版】public function __toString(){$this->ignore ? '"'.addslashes($this->ignore).'"' : 'NULL', }
Illuminate\Validation\Rules\Unique.phpV5.8.4public function __toString(){$this->ignore ? '"'.$this->ignore.'"' : 'NULL', }
这里最新的代码v5.8.7,把$this->ignore直接给addslashes了,以前这里是没有防护的。
有趣的是,笔者对比了下diff,期间官方还试图对其他引用的地方进行过滤。最后还是在__toString处,进行了统一的过滤。
最后提一句,后面的代码会进入DatabaseRule,进行后续SQL规则匹配。
Illuminate\Validation\Rules\DatabaseRule.php
这之后就没有再进一步处理,接着形成了SQL注入。
到此,相信大家对"PHP框架Laravel最新SQL注入漏洞形成的原因"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
漏洞
官方
框架
代码
网站
原因
内容
写法
函数
情况
用户
还是
处理
学习
实用
更深
有趣
知名
再进一步
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎么生成sql数据库脚本
泉州软件开发实习
湖北数据软件开发推广
包商银行数据库
零基础自学软件开发
软件开发专业转软件实施可以吗
山东机电软件开发发展现状
专转本数据库知识点
cad中建数据库输参数
如何看待网络安全及防范
mysql数据库驱动设置
中文数据库是干什么的
计算机网络技术主要考什么证
肇庆微信软件开发电话
杨浦区咨询软件开发哪家好
逆世界服务器
摸排校园网络安全情况说明
塔城地区天气预报软件开发
软件开发教程图解
网络安全值班外委服务
使用香港服务器的域名需要备案吗
trove创建一个数据库
鸟哥 服务器架设
简单一点的软件开发工具
男生做软件测试还是软件开发
杭州腾网网络技术有限公司
讲话 软件开发过程
安装adds域服务器
数据库查询某个班的学生名字
部队手机网络安全自查