首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP函数unserialize()漏洞浅析

简单提一下,PHPunserialize()函数采用一个字符串并将其转换回PHP对象。 一般情况下,当需要存储PHP对象或通过网络传输它时,首先要使用serialize()打包。...运作流程: 1.magic 方法 magic 方法是PHP中具有 magic 属性函数名称。 具体与之相关有两种,_wakeup()和_destruct()。...4.对象销毁 函数相关执行流程已经大致介绍完毕,那具体unserialize()中漏洞是如何发生呢?...攻击者可以使用此反序列化漏洞来实现RCE攻击,因为用户提供对象被传递给反序列化,并且Example2类具有在用户提供输入上运行 eval() 魔术函数。...那么知道了漏洞形成,如何防范unserialize()漏洞呢? 为了防止发生PHP对象注入,建议不要将不受信任用户输入传递给unserialize()。

1.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

关于PHP漏洞以及如何防止PHP漏洞

这些漏洞不仅仅是针对PHP语言,本文只是简单介绍PHP如何有效防止这些漏洞。...用PHP写个过滤函数,可由如下所示: $_REQUEST = filter_xss($_REQUEST); $_GET = filter_xss($_GET); $_POST = filter_xss(...函数是htmlspecialchars() 最简单filter_sql函数是mysql_real_escape_string() 当然,谁都知道这种过滤filter_sql(详细防止sql注入)只能过滤字符型和搜索型注入...文件包含漏洞涉及函数如include() 、include_once()、require()、require_once()、file_get_contents()等 最常见还是出在下载文件功能函数,...(phpddt.com)就有一篇文章:关于PHP防止漏洞策略 ,介绍了register_globals 危害以及魔术引用Magic Quotes使用说明。

1.8K110

PHP序列化及__wakeup()函数漏洞利用

前言 本篇文章讲述php序列化和反序列化知识,写内容也是参考了一些大佬文章再加上自己理解,同时结合我在做题中遇到题目来叙述,如有错误地方欢迎大佬们指正。...序列化中常见魔法函数: __construct()创建对象时调用 __destruct()销毁对象时调用 __toString()把对象转换为字符串,打印一个对象时被调用 __sleep()在序列化前被调用...) 绕过 __wakeup() 函数 当序列化字符串表示对象属性个数值大于真实个数属性时就会跳过__wakeup执行。...php header("Content-Type: text/html;charset=utf-8"); error_reporting(0); echo " 可以看出传入username参数值必须为admin,但是它用wakeup函数重新给参数赋值了guest,这里我们直接跳过wakeup函数就行了。

91810

PHP函数

函数调用 function sum($x,$y) //形参:在声明函数时声明参数 { // $x = 1; //如果在函数内对参数赋值,则会覆盖实参。...); //实参:在调用函数时传递给形参数值 echo sum(2,2); //通过return返回数据可作为值使用 局部变量:函数内部声明与使用变量 全局变量:在函数外声明,脚本任何地方均可以使用...Tips:在PHP函数中使用全局变量,要通过global关键字将这个 全局变量包含到函数中才能使用 $a = 1; $b = 2; function demo($a = '') { //global...A,但是我们不直接去调函数A, 而是在函数B中去调用函数A,函数B通过接收函数A 名字和参数来实现对函数A调用,函数A称为回调函数。...回调函数实现方法 php提供了两个内置函数call_user_func()和 call_user_func_array()提供对回调函数支持 //mixed call_user_func_array

2.2K50

PHP函数

请点击上面蓝色PHP关注 你知道这些简单函数方法吗? count() 函数计算数组中单元数目或对象中属性个数。 对于数组,返回其元素个数,对于其他值,返回 1。...规定要计数数组或对象。 mode 可选。规定函数模式。可能值:0 - 默认。不检测多维数组(数组中数组)。1 - 检测多维数组。注释:该参数是 PHP 4.2 中加入。 0 - 默认。...不检测多维 数组(数组中数组)。 1 - 检测多维数组。 注释:该参数是 PHP 4.2 中加入。 注释:当变量未被设置,或是变量包含一个空数组,该函数会返回 0。...strtr() 函数转换字符串中特定字符。 strtr(string,from,to);或者strtr(string,array); 参数 描述 string 必需。...php echo strtr("Hilla Warld","ia","eo"); ?> 输出:Hello World 例: <?

2.4K50

PHP函数

PHP函数 定义函数 基本语法: function 函数名 (参数1,参数2...){ 函数主体; [return] } 调用函数 function test1 (){ echo..."函数被调用"; } test1();//调用函数 函数参数 PHP参数传递有三种: 1、值传递:将实参值传给形参 返回值 使用return语句将函数结果返回给函数调用者. 使用方法是在要返回值前加return; 返回值类型是变量、常量、数组和表达式等。 变量作用域 变量只能在有效范围内使用。...变量 说明 局部变量 在函数内部定义函数,只能在函数内部使用 全局变量 在函数外部定义函数,能在整个PHP文件使用,但在用户定义函数内使用需要加global关键字 静态变量 在函数调用完毕后依然保留变量值变量...,在调用时需要加static关键字声明变量 可变函数 可变函数类似于可变变量,通过在变量名后面添加一对括号,PHP就会自动寻找与变量名值相同函数,并且执行该函数 <?

2.3K40

PHP函数

; } PHP函数是全局,只要定义了就可以在任何地方调用 函数内部可以写任何有效PHP代码,就算定义函数和类也是可以 PHP不支持函数重载,也不能取消定义和重写义已声明函数 递归调用时,要避免超过...php function foo(&$arg) { $arg = 1; } 在参数前面加上&可以将值传递变为引用传递,在函数内对变量做操作会改变函数变量 参数默认值 PHP 8 有了命名参数后在调用函数时就可以忽略参数顺序,配合参数默认值使用的话就可以在使用函数时只传需要参数而不必要将无意义值也传上 命名参数通过在参数名前加上冒号来传递...php function &foo() { $a = 1; return $a; } $b = &foo(); 可变函数 如果变量名后有(),PHP将寻找与变量值同名函数,并尝试执行...PHP有很多内置函数,有些函数是需要和特定扩展一起编译 function_exists()判断函数是否存在 get_extension_funcs()获取某个模块函数列表 dl()加载模块 匿名函数

2.8K20

PHP中那些你不知道坑,PHP坑,PHP漏洞

函数返回参数之坑 通常函数返回数据类型都是固定,比如Int,String,Array等。但是PHP不一样,PHP中很多函数返回数据类型并不固定。...这种函数还特别多,PHP manual上给这种返回类型起名叫「mixed」,使用时非常考验程序员风险意识和经验储备。...json函数之坑 在PHP7.1之后,json_encode($array) 函数会默认给float类型数据添加精度。...我遇到时也是一脸懵,好在这个问题可以通过修改配置文件修复,在PHP7.2之后默认关闭了json_encode函数保留更多精度开关。只有PHP7.1版本有这个问题。...json_decode($json)函数我之前有一篇文章分析过,存在hash碰撞漏洞,至今未改进。 数组类型太少之坑 PHP虽然有数组概念,但全都是HashTable。

93140

PHP弱类型引发漏洞实例

我们知道PHP 是一门弱类型语言,不必向 PHP 声明该变量数据类型,PHP 会根据变量值,自动把变量值转换为正确数据类型,但在这个转换过程中就有可能引发一些安全问题。...()函数。...函数松散性 switch() 如果switch是数字类型case判断时,switch会将其中参数转换为int类型。 ? 实例:HDwikiSQL注入 ? 实际执行语句: ?...如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true( 类似于=== )。如果没有在数组中找到参数,函数返回 false。 ?...以上就是常见利用PHP弱类型产生一些安全问题,在CTF、PHP代码审计中也会遇到这种利用弱类型来绕过逻辑判断,进而引发更大问题漏洞

1.7K10

如何修复PHPGD库漏洞

最近有关于台湾大神爆出PHPGD库漏洞,该漏洞可通过上传构造后GIF图片,可直接导致CPU资源耗尽,直至宕机。...该漏洞是由于GD图形库中gd_git_in.c具有整数签名错误,通过特殊构造GIF文件使程序在调用imagecreatefromgif或imagecreatefromstringPHP函数时导致无限循环...该漏洞影响范围较广,漏洞版本: PHP 5< PHP 5.6.33 PHP 7.0<PHP 7.0.27 PHP 7.1<PHP 7.1.13 PHP 7.2<PHP 7.2.1...复制编译参数,解压之前下载最新源码包,用之前编译参数重新编译php,这里注意修改prefix参数值,不然覆盖掉原来php了,还需要检查一下是否有之后添加扩展,也需要重新添加。...完成后,通过php -m参数对比两个版本php扩展,是否一致,若一致,则可以将php迁移到最新版本php了。 欢迎分享和关注,运维实谈,不定期分享纯干货!

2K20

认识 PHP hash函数

,很多高阶编程语言包括PHP、Perl、gawk 等都支援关连阵列,背后原理就是利用hash function 把这些数据转换成数字,然后读取阵列中元素。...用hash table 来实作关联阵列好处是搜索资料速度高,无论有多少资料,搜索速度都是固定,这一点对于要处理大量数据应用很重要。 PHP 有什么 hashing 工具?...算法,并从手册上得知现支持 35种算法;查看手册) 在PHP5 之前我们只有CRC32、MD5 和SHA1 三个内置hash function,它们输出hash value 长度如下: Hash...PHP 还有两个需要额外安装函式库支援更多hash function,就是mhash 和hash,Hash 从PHP 5.1.2 开始列为标准模组,无须自行编译或安装,所以越来越多人使用。...使用SHA-1 方法很简单(PHP 函式大都很简单,不是吗?)

65910
领券