polar2026春季个人挑战赛(中等部分)

杰尼龟系统

蛮简单的,我还以为还要更难一点

一点过滤没有

好吧还是有点的

根目录下的是假的

Signed_Too_Weak

登录之后告诉我们是普通用户

可以发现这题考的是jwt

我们改一下令牌

应该是要密钥

jwt_tool进行爆破

复制代码
python jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNzc1MDA5ODkyLCJleHAiOjE3NzUwMTM0OTJ9.k_ie_pwN7oud99bERRMgmty87Vfz8lrswlMg23mkZMY -C -d "你的jwt_tool路径"

成功获取flag

static

复制代码
<?php
    highlight_file(__FILE__);
    error_reporting(E_ALL);
    
    function hard_filter(&$file) {
        $ban_extend = array("php://", "zip://", "data://", "%2f", "%00", "\\");
#PHP 伪协议(如 php://filter 编码读取文件)或截断字符(%00)
#同时也屏蔽了反斜杠 \ 和 URL 编码的斜杠 %2f
        foreach ($ban_extend as $ban) {
            if (stristr($file, $ban)) {
                return false;
            }
        }

        $ban_keywords = array("eval", "system", "exec", "passthru", "shell_exec", "assert", "../");
        foreach ($ban_keywords as $keyword) {
            if (stristr($file, $keyword)) {
                $count = 0;
                $file = str_replace($keyword, "", $file, $count); 
#常见的"黑名单过滤且替换为空"
#由于有 break,该循环只会处理它遇到的第一个匹配到的关键词
#输入 ....//,当中间的 ../ 被替换为空后,剩下的部分会重新组合成 ../
                break;
            }
        }
        
        $file = rtrim($file, '/');
        if (strpos($file, "static/") !== 0) {
            return false;
        }
    #所有输入必须从 static/ 目录开始
        return true;
    }

    $file = $_GET['file'] ?? '';
    if (!hard_filter($file)) {
        die("Illegal request!");
    }
    
    $real_file = $file . ".php";
    $real_path = realpath($real_file) ?: $real_file;
    
    echo "<br>=== 调试信息 ===<br>";
    echo "1. 原始输入: " . htmlspecialchars($_GET['file'] ?? '') . "<br>";
    echo "2. 过滤后file: " . htmlspecialchars($file) . "<br>";
    echo "3. 拼接后的路径: " . htmlspecialchars($real_file) . "<br>";
    echo "4. 真实解析路径: " . htmlspecialchars($real_path) . "<br>";
    echo "5. 文件是否存在: " . (file_exists($real_path) ? "是" : "否") . "<br>";
    
    if (file_exists($real_path)) {
        echo "6. 正在包含文件...<br>";
        ob_start();
        include($real_path);
        $content = ob_get_clean();
        echo "7. 文件内容: " . htmlspecialchars($content) . "<br>";
    } else {
        echo "6. 错误:文件不存在!<br>";
    }
?>
PHP 文件包含漏洞

Pandora Box

上传一个zip文件为jpg后缀

可以看到已经成功为php文件

成功执行

成功获取flag

云中来信

这个页面我们可以看到这是一个ssrf请求伪造漏洞

测试回环地址

查看源码发现有源码泄露

但是没什么用

我们根据题目名和漏洞推测

https://blog.csdn.net/weixin_39190897/article/details/136049642

SSRF漏洞给云服务元数据带来的安全威胁,正好对应了我们的推测

发起对目标地址/latest/meta-data的请求,如果能够请求成功,则认定可以发起攻击。

这个请求成功,包括状态码5XX,都认为请求成功。

需要有效的元数据令牌。请先访问 /latest/api/token 获取token,并在请求头 X-IMDS-Token 中携带。

我们来进行访问

进行替换

再次进行访问,得到一个路径进行访问

成功获取flag

相关推荐
CYY957 小时前
Android 打印 SO 库的异常日志
android
找藉口是失败者的习惯8 小时前
深入理解 Android 无障碍服务
android
summerkissyou19878 小时前
Android-SurfaceView-打开车机SurfaceFlinger和HWC的日志
android
Fate_I_C8 小时前
Android函数式编程代码规范文档
android·代码规范
安卓蓝牙Vincent8 小时前
Android BLE SDK 设计手册(一):一次参数改动,让我重新设计了整套架构
android·架构
angerdream8 小时前
Android手把手编写儿童手机远程监控App之广播开机自启动
android·android studio
su_ym81109 小时前
Android SELinux
android·selinux
阿巴斯甜9 小时前
Android中项目架构:
android
程序员陆业聪10 小时前
线上监控与防劣化:让启动优化成果不再回退 | Android启动优化系列(五·完结)
android
程序员陆业聪11 小时前
首帧渲染优化:从白屏到内容可见的最后一公里
android