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

相关推荐
恋猫de小郭1 分钟前
2026 Android I/O ,全新 AI 手机、 Android PC 和车载驾驶
android·前端·flutter
赏金术士13 小时前
Kotlin ViewModel
android·kotlin
vistaup14 小时前
kotlin 二维码实现高斯模糊
android·kotlin
愈努力俞幸运15 小时前
function calling与mcp
android·数据库·redis
阿巴斯甜15 小时前
LeakCanary
android
阿巴斯甜16 小时前
compose
android
阿巴斯甜16 小时前
Glide
android
-SOLO-16 小时前
使用Perfetto debug trace查看超时slice
android
阿巴斯甜16 小时前
Retrofit
android
阿巴斯甜16 小时前
OkHttp
android