Polar2025秋季挑战赛web-writeup
字数 3179 2025-09-23 19:27:38

Polar 2025 秋季挑战赛 Web 题解与教学

题目列表与解法详解

1. white

考察点:命令注入与绕过技巧

解题步骤

  1. 在登录页面下载备忘录时发现用户等级分为四个等级
  2. 通过抓包发现存在id=user参数
  3. 将参数值修改为最高等级root登录即可获取flag

关键技术点

  • 水平越权漏洞:通过修改用户标识获取更高权限
  • 抓包工具使用:Burp Suite或浏览器开发者工具

防御方案

  • 对用户身份进行服务端验证
  • 使用会话管理而非参数传递用户身份

2. 俄罗斯方块

考察点:前端源码分析与敏感接口发现

解题步骤

  1. 查看JavaScript源码发现条件判断后会请求get_squirrt1e.php
  2. 直接访问该接口获取flag

关键技术点

  • 前端代码审计:检查JS文件中的隐藏接口或敏感信息
  • 开发者工具使用:Sources面板查看源码

防御方案

  • 敏感接口应进行权限验证
  • 避免在前端代码中暴露内部接口地址

3. vip

考察点:参数篡改与布尔值绕过

解题步骤

  1. 抓包发现参数vip=false
  2. 将参数值改为vip=true获取权限提升

关键技术点

  • 参数篡改攻击:修改客户端传递的参数值
  • 布尔值处理:服务端应对参数进行严格验证

防御方案

  • 服务端进行权限验证而非依赖客户端参数
  • 对输入参数进行严格类型检查

4. 代码审计

考察点:文件包含与目录遍历漏洞

题目源码分析

<?php
$page = 'hello.php';
if (isset($_GET['page'])) {
    $page = $_GET['page'];
}

$base_dir = __DIR__ . '/pages/';
$target = $base_dir . $page;

if (preg_match('/https?:\/\//i', $page)) {
    echo "远程 URL 不允许呦。";
    exit;
}

if (file_exists($target)) {
    $content = file_get_contents($target);
    echo "<pre>" . htmlspecialchars($content, ENT_QUOTES|ENT_SUBSTITUTE, 'UTF-8') . "</pre>";
} else {
    if (@file_exists($page)) {
        $content = file_get_contents($page);
        echo "<pre>" . htmlspecialchars($content, ENT_QUOTES|ENT_SUBSTITUTE, 'UTF-8') . "</pre>";
    } else {
        echo "No!: " . htmlspecialchars($page);
    }
}
?>

解题步骤

  1. 分析代码发现存在文件包含功能
  2. 虽然过滤了http/https协议,但未有效防止目录遍历
  3. 使用payload:?page=../flag.txt读取flag

关键技术点

  • 目录遍历攻击:使用../跨越目录边界
  • 文件包含漏洞:未对输入路径进行规范化处理

防御方案

  • 使用basename()函数获取文件名
  • 使用白名单机制限制可访问文件
  • 对输入路径进行规范化处理

5. PolarCMS

考察点:认证绕过与模板注入

解题步骤

  1. 登录页面存在弱密码漏洞,可通过爆破或SQL注入绕过
  2. 发现密码正确时用户名任意均可登录(设计缺陷)
  3. 登录后存在文件上传和页面创建功能
  4. 在创建页面处尝试模板注入:${exec('cat /f*')}

关键技术点

  • 认证逻辑缺陷:密码验证与用户身份验证分离
  • 服务端模板注入(SSTI):在模板中执行系统命令
  • Java环境下的命令执行

防御方案

  • 实现完整的认证机制
  • 对用户输入进行严格过滤
  • 避免在模板中执行用户输入

6. 狗黑子的舔狗日记

考察点:文件包含与PHP伪协议利用

源码分析

关键代码段:

if (isset($_GET['page'])) {
    $requestedPage = $_GET['page'];
    $baseDir = dirname(__FILE__);
    
    if (strpos($requestedPage, 'php://') === 0) {
        if (preg_match('/resource=([^&]+)/', $requestedPage, $matches)) {
            $resource = $matches[1];
            $resource = urldecode($resource);
            if (strpos($resource, '/') !== false || strpos($resource, '\\') !== false || strpos($resource, '..') !== false) {
                die("不支持其他操作");
            }
            include($requestedPage);
            exit;
        }
    }
    
    // ... 其他验证逻辑
}

$flag='ZmxhZ3vlpbPnpZ7nmoTlkI3lrZdtZDXliqDlr4Z9CnRpcHMgIOWls+elnuW+ruS/oeWPt++8mm52c2hlbg==';

解题步骤

  1. 发现page参数可用于文件读取
  2. 使用PHP伪协议读取index.php:?page=php://filter/convert.base64-encode/resource=index.php
  3. 获取base64编码的flag并解码
  4. 解码后提示:flag{女神的名字md5加密} tips: 女神微信号:nvshen
  5. 扫描目录发现www.zip(密码本)
  6. 爆破登录女神微信,发送消息获取名字

关键技术点

  • PHP伪协议利用:php://filter读取文件内容
  • 目录遍历与敏感文件发现
  • 密码爆破与身份伪装

防御方案

  • 禁用不必要的PHP伪协议
  • 对文件包含路径进行严格限制
  • 避免将敏感文件存放在web目录

7. Squirtle的论坛

考察点:Cookie伪造与权限绕过

解题步骤

  1. 扫描目录发现admin.php,但提示无权限访问
  2. 主页面提示"master只能是Squirtle!!!"
  3. 尝试设置Cookie:master=Squirtle
  4. 访问admin.php成功,上传一句话木马执行命令

关键技术点

  • Cookie身份验证绕过:通过伪造特定Cookie值获取权限
  • 文件上传漏洞:上传Webshell获取系统权限

防御方案

  • 使用安全的会话管理机制
  • 对Cookie进行签名或加密处理
  • 文件上传功能应验证文件类型和内容

8. 老刘的小店

考察点:业务逻辑漏洞与自动化利用

解题步骤

  1. 注册登录后发现需要10000金币兑换目标物品
  2. 系统限制每分钟只能获取三个金币
  3. 但可以向其他账户转账金币
  4. 编写自动化脚本注册多个账户并向主账户转账

关键技术点

  • 业务逻辑漏洞:转账功能缺乏限制
  • 自动化攻击:通过脚本批量操作
  • 时间窗口利用:绕过时间限制机制

防御方案

  • 实施交易频率限制
  • 添加验证码机制防止自动化
  • 对异常交易行为进行监控

9. 狗黑子的eval

考察点:代码混淆与动态执行

解题步骤

  1. 扫描目录发现flag.php和shell.php
  2. flag.php提示查看payload.php
  3. 注释提示:gou=a,gougou=b(即2gou=b,3gou=c,依此类推)
  4. 将代码中的gou变量替换为对应字母
  5. 发现$gou7base64解码为"stgo"
  6. 重组后得到"evalpostgoubaizi",推测为shell.php的参数
  7. 使用蚁剑连接,通过插件绕过权限执行命令

关键技术点

  • 代码混淆与解码:理解变量命名规律
  • 动态代码执行:eval函数的安全风险
  • 权限绕过技术:Webshell工具的高级使用

防御方案

  • 避免使用eval等动态执行函数
  • 实施严格的输入验证
  • 使用Web应用防火墙(WAF)

10. 狗黑子的登录

考察点:Git信息泄露与文件上传漏洞

解题步骤

  1. 扫描目录发现.git文件夹
  2. 使用GitHack工具下载源码:python GitHack.py http://target/.git/
  3. 获取index.php和admin.php源码
  4. index.php中发现seclients_can_register=1参数可开启注册功能
  5. admin.php存在文件上传漏洞,仅验证Content-Type
  6. 修改Content-Type为image/png上传PHP文件

关键技术点

  • Git信息泄露:通过.git文件夹获取源码
  • 参数开启隐藏功能:设计缺陷
  • 文件上传绕过:修改Content-Type头

防御方案

  • 禁止访问.git目录
  • 生产环境应关闭调试功能
  • 文件上传应验证文件内容和魔术字

11. ZGZH

考察点:序列化漏洞与科学计数法绕过

解题步骤

  1. 需要编写Python脚本进行用户对象序列化
  2. 提示验证密码,访问pass.php
  3. 使用科学计数法绕过:传入857.00E+000

关键技术点

  • 对象序列化攻击:构造恶意序列化数据
  • 科学计数法绕过:利用PHP类型转换特性
  • 浮点数精度问题:数值比较漏洞

防御方案

  • 避免反序列化不可信数据
  • 使用严格类型比较(===)
  • 实施输入验证和过滤

综合防御建议

1. 输入验证与过滤

  • 实施白名单机制,只允许预期的输入格式
  • 对所有用户输入进行规范化处理
  • 使用预处理语句防止SQL注入

2. 身份认证与会话管理

  • 实施强密码策略和多因素认证
  • 使用安全的会话管理机制
  • 避免在URL或Cookie中暴露敏感信息

3. 文件操作安全

  • 限制文件操作范围到指定目录
  • 禁用不必要的PHP伪协议
  • 对文件路径进行规范化处理

4. 错误处理与日志记录

  • 避免向用户暴露详细错误信息
  • 记录安全事件用于审计和监控
  • 实施实时监控和告警机制

5. 安全开发生命周期

  • 进行代码安全审计和渗透测试
  • 实施安全编码培训和教育
  • 建立漏洞管理和应急响应流程

工具推荐

  1. Burp Suite:Web应用渗透测试集成平台
  2. GitHack:.git文件夹利用工具
  3. AntSword:中国蚁剑,Webshell管理工具
  4. DirBuster:目录扫描工具
  5. SQLMap:SQL注入自动化工具

本教学文档涵盖了Polar 2025秋季挑战赛Web题目的详细解法和关键技术点,旨在帮助学习者深入理解Web安全漏洞的原理、利用方式和防御措施。

Polar 2025 秋季挑战赛 Web 题解与教学 题目列表与解法详解 1. white 考察点 :命令注入与绕过技巧 解题步骤 在登录页面下载备忘录时发现用户等级分为四个等级 通过抓包发现存在 id=user 参数 将参数值修改为最高等级 root 登录即可获取flag 关键技术点 水平越权漏洞:通过修改用户标识获取更高权限 抓包工具使用:Burp Suite或浏览器开发者工具 防御方案 对用户身份进行服务端验证 使用会话管理而非参数传递用户身份 2. 俄罗斯方块 考察点 :前端源码分析与敏感接口发现 解题步骤 查看JavaScript源码发现条件判断后会请求 get_squirrt1e.php 直接访问该接口获取flag 关键技术点 前端代码审计:检查JS文件中的隐藏接口或敏感信息 开发者工具使用:Sources面板查看源码 防御方案 敏感接口应进行权限验证 避免在前端代码中暴露内部接口地址 3. vip 考察点 :参数篡改与布尔值绕过 解题步骤 抓包发现参数 vip=false 将参数值改为 vip=true 获取权限提升 关键技术点 参数篡改攻击:修改客户端传递的参数值 布尔值处理:服务端应对参数进行严格验证 防御方案 服务端进行权限验证而非依赖客户端参数 对输入参数进行严格类型检查 4. 代码审计 考察点 :文件包含与目录遍历漏洞 题目源码分析 解题步骤 分析代码发现存在文件包含功能 虽然过滤了http/https协议,但未有效防止目录遍历 使用payload: ?page=../flag.txt 读取flag 关键技术点 目录遍历攻击:使用 ../ 跨越目录边界 文件包含漏洞:未对输入路径进行规范化处理 防御方案 使用 basename() 函数获取文件名 使用白名单机制限制可访问文件 对输入路径进行规范化处理 5. PolarCMS 考察点 :认证绕过与模板注入 解题步骤 登录页面存在弱密码漏洞,可通过爆破或SQL注入绕过 发现密码正确时用户名任意均可登录(设计缺陷) 登录后存在文件上传和页面创建功能 在创建页面处尝试模板注入: ${exec('cat /f*')} 关键技术点 认证逻辑缺陷:密码验证与用户身份验证分离 服务端模板注入(SSTI):在模板中执行系统命令 Java环境下的命令执行 防御方案 实现完整的认证机制 对用户输入进行严格过滤 避免在模板中执行用户输入 6. 狗黑子的舔狗日记 考察点 :文件包含与PHP伪协议利用 源码分析 关键代码段: 解题步骤 发现page参数可用于文件读取 使用PHP伪协议读取index.php: ?page=php://filter/convert.base64-encode/resource=index.php 获取base64编码的flag并解码 解码后提示: flag{女神的名字md5加密} tips: 女神微信号:nvshen 扫描目录发现www.zip(密码本) 爆破登录女神微信,发送消息获取名字 关键技术点 PHP伪协议利用: php://filter 读取文件内容 目录遍历与敏感文件发现 密码爆破与身份伪装 防御方案 禁用不必要的PHP伪协议 对文件包含路径进行严格限制 避免将敏感文件存放在web目录 7. Squirtle的论坛 考察点 :Cookie伪造与权限绕过 解题步骤 扫描目录发现admin.php,但提示无权限访问 主页面提示"master只能是Squirtle!! !" 尝试设置Cookie: master=Squirtle 访问admin.php成功,上传一句话木马执行命令 关键技术点 Cookie身份验证绕过:通过伪造特定Cookie值获取权限 文件上传漏洞:上传Webshell获取系统权限 防御方案 使用安全的会话管理机制 对Cookie进行签名或加密处理 文件上传功能应验证文件类型和内容 8. 老刘的小店 考察点 :业务逻辑漏洞与自动化利用 解题步骤 注册登录后发现需要10000金币兑换目标物品 系统限制每分钟只能获取三个金币 但可以向其他账户转账金币 编写自动化脚本注册多个账户并向主账户转账 关键技术点 业务逻辑漏洞:转账功能缺乏限制 自动化攻击:通过脚本批量操作 时间窗口利用:绕过时间限制机制 防御方案 实施交易频率限制 添加验证码机制防止自动化 对异常交易行为进行监控 9. 狗黑子的eval 考察点 :代码混淆与动态执行 解题步骤 扫描目录发现flag.php和shell.php flag.php提示查看payload.php 注释提示:gou=a,gougou=b(即2gou=b,3gou=c,依此类推) 将代码中的gou变量替换为对应字母 发现 $gou7 base64解码为"stgo" 重组后得到"evalpostgoubaizi",推测为shell.php的参数 使用蚁剑连接,通过插件绕过权限执行命令 关键技术点 代码混淆与解码:理解变量命名规律 动态代码执行:eval函数的安全风险 权限绕过技术:Webshell工具的高级使用 防御方案 避免使用eval等动态执行函数 实施严格的输入验证 使用Web应用防火墙(WAF) 10. 狗黑子的登录 考察点 :Git信息泄露与文件上传漏洞 解题步骤 扫描目录发现.git文件夹 使用GitHack工具下载源码: python GitHack.py http://target/.git/ 获取index.php和admin.php源码 index.php中发现 seclients_can_register=1 参数可开启注册功能 admin.php存在文件上传漏洞,仅验证Content-Type 修改Content-Type为 image/png 上传PHP文件 关键技术点 Git信息泄露:通过.git文件夹获取源码 参数开启隐藏功能:设计缺陷 文件上传绕过:修改Content-Type头 防御方案 禁止访问.git目录 生产环境应关闭调试功能 文件上传应验证文件内容和魔术字 11. ZGZH 考察点 :序列化漏洞与科学计数法绕过 解题步骤 需要编写Python脚本进行用户对象序列化 提示验证密码,访问pass.php 使用科学计数法绕过:传入 857.00E+000 关键技术点 对象序列化攻击:构造恶意序列化数据 科学计数法绕过:利用PHP类型转换特性 浮点数精度问题:数值比较漏洞 防御方案 避免反序列化不可信数据 使用严格类型比较(===) 实施输入验证和过滤 综合防御建议 1. 输入验证与过滤 实施白名单机制,只允许预期的输入格式 对所有用户输入进行规范化处理 使用预处理语句防止SQL注入 2. 身份认证与会话管理 实施强密码策略和多因素认证 使用安全的会话管理机制 避免在URL或Cookie中暴露敏感信息 3. 文件操作安全 限制文件操作范围到指定目录 禁用不必要的PHP伪协议 对文件路径进行规范化处理 4. 错误处理与日志记录 避免向用户暴露详细错误信息 记录安全事件用于审计和监控 实施实时监控和告警机制 5. 安全开发生命周期 进行代码安全审计和渗透测试 实施安全编码培训和教育 建立漏洞管理和应急响应流程 工具推荐 Burp Suite :Web应用渗透测试集成平台 GitHack :.git文件夹利用工具 AntSword :中国蚁剑,Webshell管理工具 DirBuster :目录扫描工具 SQLMap :SQL注入自动化工具 本教学文档涵盖了Polar 2025秋季挑战赛Web题目的详细解法和关键技术点,旨在帮助学习者深入理解Web安全漏洞的原理、利用方式和防御措施。