PHP反序列化--引用

简介: PHP反序列化--引用

一、引用的理解:

引用就是给予一个变量一个恒定的别名。

int a = 10;

int b = &a;

a = 20;

cout<<a<<b<<endl;

输出结果 : a=20、b=20

二、靶场复现:

<?php
highlight_file(__FILE__);
error_reporting(0);
include("flag.php");
class just4fun {
    var $enter;
    var $secret;
}
if (isset($_GET['pass'])) {
    $pass = $_GET['pass'];
    $pass=str_replace('*','\*',$pass);
}
$o = unserialize($pass);
if ($o) {
    $o->secret = "*";
    if ($o->secret === $o->enter)
        echo "Congratulation! Here is my secret: ".$flag;
    else
        echo "Oh no... You can't fool me";
}
else echo "are you trolling?";
?>

分析靶场源代码:

后台会将我们输入的字符串中的 * 转义成 \*,并且转义之后会将 $serect 赋值为 *。并且最终以 $o->serect 和 $o->enter 是否相等作为最终条件,我们可以使用引用将 serect 和 enter 捆绑在一起,使他们一直相等即可。

构造 payload:

将序列化字符串赋值给 ['pass'] 后提交:

相关文章
|
2月前
|
缓存 安全 PHP
PHP中的魔术方法与对象序列化
本文将深入探讨PHP中的魔术方法,特别是与对象序列化和反序列化相关的__sleep()和__wakeup()方法。通过实例解析,帮助读者理解如何在实际应用中有效利用这些魔术方法,提高开发效率和代码质量。
|
7月前
|
存储 监控 安全
Pikachu PHP 反序列化通关解析
Pikachu PHP 反序列化通关解析
|
6月前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
7月前
|
安全 PHP
PHP反序列化---字符串逃逸(增加/减少)
PHP反序列化---字符串逃逸(增加/减少)
|
7月前
|
PHP
PHP反序列化--pop链
PHP反序列化--pop链
|
7月前
|
安全 PHP
PHP反序列化--_wakeup()绕过
PHP反序列化--_wakeup()绕过
|
7月前
|
存储 PHP 数据库
PHP序列化基础知识储备
PHP序列化基础知识储备
|
7月前
|
网络安全 PHP 数据安全/隐私保护
[网络安全/CTF] 记一次PHP序列化反序列化解题详析
[网络安全/CTF] 记一次PHP序列化反序列化解题详析
114 5
|
7月前
|
网络安全 PHP
[网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)
[网络安全/CTF] BUUCTF极客大挑战2019PHP解题详析(Dirsearch使用实例+php反序列化)
197 0
|
PHP
今天遇到有趣的php引用题目
今天遇到有趣的php引用题目
34 0