PHP反序列化漏洞说明

PHP反序列化漏洞说明

序列化

PHP序列化的函数为serialize,反序列化的函数为unserialize.

举个栗子:

<?php
class Test{
	public $a='ThisA';
	protected $b='ThisB'
	private $c='ThisC';
	public function test(){
		return "this is a test!";
	}

$test1=new Test();
var_dump(searialize($test1))
}

结果:

string(84) "O:4:"Test":3:{s:1:"a";s:5:"ThisA";s:4:"*b";s:5:"ThisB";s:7:"Testc";s:5:"ThisC";}"

O:表示对象
:4:表示对象名称有4个字符
"Test":对象名称
3:3个成员变量

s:1:"a";s:5:"ThisA";: a变量的值为ThisA,有5个字符
s:4:"*b";s:5:"ThisB": protected,ThisC
s:7:"Testc";s:5:"ThisC";: ThisC

反序列化

反序列化就是序列化的逆过程,即对于将对象进行序列化后的字符串,还原其成员变量的过程。

栗子:

<?php
	class Test{         
		public $a = 'ThisA';         
		protected $b = 'ThisB';         
		private $c = 'ThisC';         
		public function test(){                  
			return'this is test';         
		}
	}
	$test = new Test();
	$sTest = serialize($test);
	$usTest = unserialize($sTest);
	var_dump($usTest);
?>

结果:

object(Test)#2 (3) { ["a"]=> string(5) "ThisA" ["b":protected]=> string(5) "ThisB" ["c":"Test":private]=> string(5) "ThisC" }

魔术方法

反序列化漏洞的形成通常和以下魔术方法有关:

__construct()
#类似C构造函数,当一个对象创建时被调用,但在unserialize()时是不会自动调
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于PHP序列漏洞的习题,可以使用GlobIterator类和ArrayObject类来进行练习。其中,GlobIterator类的题目是被遗忘的序列,ArrayObject类的题目是easy_phpPHP序列漏洞是一种安全漏洞,其中一个具体的例子是CVE-2016-7124,该漏洞存在于php5<5.6.25和php7<7.0.10的版本中。漏洞的产生原因是由于序列时对输入的不当处理所导致的。 了解PHP序列漏洞的习题,需要掌握类与对象、序列基础知识以及一些与魔术方法相关的内容,如构造和折构方法(__construct()、__destruct())、序列序列方法(__sleep()、__wakeup())、错误调用魔术方法(__callStatic()、__get()、__set()、__isset()、__unset()、__clone())等。序列漏洞的成因较复杂,例如POP链构造、POC链推法等。 此外,还可以学习字符串逃逸和__wakeup魔术方法绕过漏洞的相关知识。其中,__wakeup魔术方法绕过漏洞的产生原因是__wakeup方法可以在序列时被绕过,从而可能导致安全漏洞PHP序列漏洞还可以通过引用的利用方法来进行学习。另外,还可以学习SESSION序列漏洞和phar序列漏洞的习题。其中,SESSION序列漏洞涉及到不同处理器的不同储存格式,而phar序列漏洞需要了解phar的构造和使用条件。 通过这些习题的学习,可以更好地理解PHP序列漏洞以及如何进行防范和修复。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [PHP序列漏洞(最全面最详细有例题)](https://blog.csdn.net/m0_73728268/article/details/129893800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值