首页 / PHP / php反序列化漏洞-咖面Amber
php反序列化漏洞-咖面Amber
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php反序列化漏洞-咖面Amber,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1579字,纯文字阅读大概需要3分钟。
内容图文
https://www.bilibili.com/video/BV1Ft41187ZX
php反序列化原理
php序列化与反序列化基础
-
序列化与反序列化
- 序列化:将变量转换为可保存或传输的字符串的过程
- 反序列化:在适当的时候把这个字符串转化为原来的变量使用
-
php序列化与反序列化函数
-
serialize:可以将变量转换为字符串并且在转换中可以保存当前变量的值
-
unserialize:可以将serialize生成的字符串变换回变量
-
php进行序列化的目的是保存一个对象方便以后重用
-
-
类,变量,方法,对象
<?php
//创建一个person类
class Person
{
//变量
public $name=‘‘;
public $age=0;
//方法
public function Information()
{
echo ‘Person: ‘.$this->name.‘is ‘.$this->age.‘years old <br/>‘;
}
}
$per=new Person();
$per->name=‘lonmar‘;
$per->age=18;
$per->Information();
?>
php序列化实例
- 序列化一个对象将会保存对象的所有变量, 但是不会保存对象的方法,只会保存类的名字。
<?php
class Person
{
public $name=‘‘;
public $age=0;
public function Information()
{
echo ‘Person: ‘.$this->name. ‘is ‘.$this->age.‘ years old <br/>‘;
}
}
$per=new Person();
$per->name=‘lonmar‘;
$per->age=18;
echo serialize($per);
?>
输出:
O:6:"Person":2:{s:4:"name";s:6:"lonmar";s:3:"age";i:18;}
- php反序列化实例
<?php
class Person
{
public $name=‘‘;
public $age=0;
public function Information()
{
echo ‘Person: ‘.$this->name. ‘is ‘.$this->age.‘ years old <br/>‘;
}
}
$per=unserialize(‘O:6:"Person":2:{s:4:"name";s:6:"lonmar";s:3:"age";i:18;}‘);
$per->Information()
?>
输出 Person: lonmaris 18 years old
php魔法函数
- php类中包含了一些魔法函数,这些函数可以在脚本的任何地方不用声明就可以使用
- 与php反序列化有关的魔法函数
php反序列化漏洞
-
php反序列化漏洞又称对象注入,可能会导致注入,远程代码执行等安全问题的发生。
-
php反序列化漏洞如何产生:
如果一个php代码中使用了unserialize函数去调用某一类, 该类中会自动执行一些自定义的magic method,这些magic method中如果包含了一些危险的操作, 或者这些magic method会去调用类中其他带有危险操作的函数,如果这些危险操作是我们可控的,那么就可以进行一些不可描述的操作 了。
原文:https://www.cnblogs.com/l0nmar/p/12823486.html
内容总结
以上是互联网集市为您收集整理的php反序列化漏洞-咖面Amber全部内容,希望文章能够帮你解决php反序列化漏洞-咖面Amber所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。