当前位置: 首页 > news >正文

2.【BUUCTF】[极客大挑战 2020]Roamphp1-Welcome

进入题目页面如下

刷新好几遍还是这个页面,后来注意到报错不是404,而是405

表示 客户端使用的HTTP请求方法不被服务器支持

用burp suite抓包,看到是GET请求,报了405,那试试POST请求,用burpsuite修改

放行,看到源码

<?php
// 1. 设置错误报告级别为 0,即关闭所有错误报告,避免在页面上显示错误信息。
error_reporting(0);

// 2. 检查当前请求的方法是否不是 POST 请求。
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    // 如果不是 POST 请求,设置 HTTP 响应状态码为 405 Method Not Allowed,表示请求方法不被允许。
    header("HTTP/1.1 405 Method Not Allowed");
    // 终止脚本的执行。
    exit();
} else {
    // 3. 如果是 POST 请求,检查 POST 数据中是否同时存在 'roam1' 和 'roam2' 这两个参数。
    if (!isset($_POST['roam1']) || !isset($_POST['roam2'])){
        // 如果缺少其中一个参数,显示当前 PHP 文件的源代码。
        show_source(__FILE__);
    } else {
        // 4. 检查 'roam1' 和 'roam2' 的值是否不相等,并且它们经过 sha1 哈希后的结果是否相等。
        if ($_POST['roam1'] !== $_POST['roam2'] && sha1($_POST['roam1']) === sha1($_POST['roam2'])){
            // 如果满足条件,调用 phpinfo() 函数,输出 PHP 的配置信息。
            phpinfo();  // collect information from phpinfo!
        }
    }
}

SHA - 1 哈希碰撞漏洞
sha1() 函数在处理某些特殊输入时会产生哈希碰撞,即不同的输入可能会产生相同的 SHA - 1 哈希值。代码中通过比较 sha1($_POST['roam1']) 和 sha1($_POST['roam2']) 是否相等来判断条件,并且要求 $_POST['roam1'] 和 $_POST['roam2'] 的值不相等

由于代码调用 phpinfo() 函数输出 PHP 配置信息,我们可以利用 SHA - 1 哈希碰撞来满足条件,从而触发 phpinfo() 函数。一般来说,通过查找已知的 SHA - 1 碰撞对,将其分别作为 roam1 和 roam2 的值发送 POST 请求。然后从 phpinfo() 输出的信息中寻找与 flag 相关的线索,可能包括环境变量、文件路径等信息

payload:

roam1[]=1&roam2[]=2

用hackbar发送post请求

得到phpinfo,在环境变量中ctrl+F,输入flag,查找flag,最终找到Flag

相关文章:

  • 网易雷火游戏测试开发1面面经(带脑图)
  • 权限五张表
  • React入门 - 0.React简介
  • snort3.0-ubuntu18.04 64入侵检测安装与使用
  • 总结前端常用数据结构 之 数组篇【JavaScript -包含常用数组方法】
  • MYSQL下载安装及使用
  • 四、敏捷方法论:敏捷开发中的关键实践
  • 【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】
  • NumPy中生成和堆叠数组、生成切片的特殊对象:np.r_ np.c_ np.s_
  • RK3588视觉控制器与AI 算法:开启工业视觉检测新境界
  • 数据结构实现顺序表的尾插,尾删,按值查找/修改/删除,按下标查找/增加/删除
  • python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第四节】
  • Java面试第二山!《计算机网络》!
  • VMware Fusion关机Ubuntu虚拟机黑屏解决方法
  • 使用DeepSeek建立一个智能聊天机器人0.12
  • 【玩转全栈】----Django基本配置和介绍
  • sql语言语法的学习
  • 深入理解 MQTT 协议:物联网通信的核心
  • VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant
  • 视觉周刊|2025上海车展的科技范
  • 胃病、闭经、湿疹、失明:藏在疾病后的情绪问题
  • 研讨会丨明清区域史研究的比较与对话
  • 上海楼市明显复苏:一季度房地产开发投资增长5.1%,土地市场重燃战火
  • 外交部答澎湃:愿同阿曼在国际和地区事务中加强沟通协调
  • 海南一季度GDP为1904.17亿元,同比增长4.0%