如何利用帝国CMS创建专注于山东省工程建设造价信息的网站首页?
摘要:用帝国cms做的网站首页,山东省工程建设造价信息网站,小包工头怎么注册公司,wordpress 音乐作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹&a
用帝国cms做的网站首页,山东省工程建设造价信息网站,小包工头怎么注册公司,wordpress 音乐作者#xff1a;Eason_LYC 悲观者预言失败#xff0c;十言九中。 乐观者创造奇迹#xff0c;一次即可。 一个人的价值#xff0c;在于他所拥有的。可以不学无术#xff0c;但不能一无所有#xff01; 技术领域#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防。我的… 作者Eason_LYC 悲观者预言失败十言九中。 乐观者创造奇迹一次即可。 一个人的价值在于他所拥有的。可以不学无术但不能一无所有 技术领域WEB安全、网络攻防 关注WEB安全、网络攻防。我的专栏文章知识点全面细致逻辑清晰、结合实战让你在学习路上事半功倍少走弯路 个人社区极乐世界-技术至上 追求技术至上这是我们理想中的极乐世界~关注我即可加入社区 本专栏CTF基础入门系列打破以往CTF速成或就题论题模式。采用系统讲解基础知识入门题目练习真题讲解方式。让刚接触CTF的读者真正掌握CTF中各类型知识点为后续自学或快速刷题备赛打下坚实的基础~ 目前ctf比赛一般选择php作为首选语言如读者不了解php的基本语法请登录相关网站自学下基本语法即可一般5-7天即可掌握基础。 目录1. 什么是PHP序列化和反序列化1.1 基础概念1.2 基础知识1.3 PHP反序列化漏洞的危害1.4 PHP反序列化漏洞的防御措施2. 知识点讲解2.1 类的访问修饰符2.1.1 public 公开的2.1.2 protected 受保护的2.1.3 private 私有的2.2. 相关函数和重要知识点2.2.1 基础定义2.2.2 相关函数及技巧知识点serialize(mixed $value)unserialize(string $str): mixed2.2.3 【技巧】urlencode 序列化结果2.2.4 【技巧】序列化引用R类型绕过比对2.2.5 PHP反序列化特点3. PHP常用魔术方法3.1 魔法函数汇总3.2 魔法函数使用示例1. 什么是PHP序列化和反序列化
1.1 基础概念
PHP序列化是将一个PHP对象转换成一个字符串以便在不同的应用程序之间传递和存储。反序列化是将序列化的字符串转换回PHP对象。攻击者可以通过构造恶意的序列化字符串来触发代码执行这就是PHP反序列化漏洞的本质。PHP序列化函数官方文档https://www.php.net/manual/en/function.serialize.phpPHP反序列化函数官方文档https://www.php.net/manual/en/function.unserialize.php
1.2 基础知识
序列化是将 PHP 对象转换为可存储或传输的字符串的过程。序列化后的字符串可以保存到文件或通过网络传输到其他计算机在需要时可以反序列化为原始对象。
序列化的基本原理是将 PHP 对象转换为一组字符串其中包含对象的属性和变量。序列化后的字符串可以被反序列化为原始对象从而重新创建对象。
PHP 序列化可以使用 PHP 内置的 serialize() 函数进行。例如以下代码将一个 PHP 对象序列化为字符串
$object new MyClass();
$string serialize($object);在上面的代码中$object 是一个 MyClass 类的实例serialize() 函数将其序列化为一个字符串存储在 $string 变量中。
反序列化可以使用 PHP 内置的 unserialize() 函数进行。例如以下代码将一个序列化的字符串反序列化为 PHP 对象
$string O:7:MyClass:2:{s:3:foo;s:3:bar;s:3:baz;i:123;};
$object unserialize($string);在上面的代码中$string 是一个序列化的字符串unserialize() 函数将其反序列化为一个 MyClass 类的实例存储在 $object 变量中。
需要注意的是PHP 序列化只能序列化 PHP 对象不能序列化资源、闭包等其他类型的数据。另外由于序列化后的字符串包含对象的私有属性和方法因此在反序列化时需要确保对象的类定义已经加载到内存中。 简单来说就是将一个php对象转化为字符串保存序列化方便传输到远端后在远端再还原成对象的一个过程反序列化。 1.3 PHP反序列化漏洞的危害
PHP反序列化漏洞可以导致远程代码执行攻击者可以通过构造恶意的序列化字符串将任意代码注入到应用程序中从而实现控制服务器的目的。 简单说就是构造恶意的字符串序列化这样远端还原对象时反序列化就把恶意的对象还原并执行了。
