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

相关推荐
黑马源码库miui520862 小时前
JAVA国际版同城上门服务上门送水桶装水配送源码同城上门配送系统源码支持Android+IOS+H5
android·java·ios
黄林晴2 小时前
无奈妥协!六年账号被迫改名,Android 技术圈顺势升级 !
android·运营
2501_915921432 小时前
iPhone 定位功能测试时不越狱来修改手机位置的方法
android·ios·智能手机·小程序·uni-app·iphone·webview
常利兵3 小时前
Android开发秘籍:给图片加上独特水印
android
hnlgzb3 小时前
安卓app体系中,room数据库和datastore是什么关系?有什么不一样?
android·数据库·oracle
谪星·阿凯3 小时前
PHP序列化漏洞从入门到实战博客
android·开发语言·web安全·php
草莓熊Lotso3 小时前
MySQL 索引特性与性能优化全解
android·运维·数据库·c++·mysql·性能优化
Kapaseker3 小时前
千万不要以为你搞懂了 var 和 val
android·kotlin
TE-茶叶蛋3 小时前
安卓应用(uniapp开发)分享微信-申请appid
android·微信·uni-app