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

进入题目页面如下

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

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

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

放行,看到源码

php 复制代码
<?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

相关推荐
白猫不黑20 小时前
从运维到网络安全:转行优势、路径与薪资前景全解析
运维·网络·web安全·网络安全·信息安全·渗透测试
dog25020 小时前
多路径聚合效率的统计理论
网络·tcp/ip
草莓熊Lotso20 小时前
【Linux网络加餐】手动部署:SSH 与 Web 服务实战 + 底层原理全解析
linux·运维·网络·人工智能·python·langchain·ssh
剑锋所指,所向披靡!21 小时前
TCP并发服务器
服务器·网络·tcp/ip
网安蟹佬霸21 小时前
密码学安全实战:从加密原理到哈希破解的完整攻防指南
网络·算法·安全·web安全·开源·密码学·哈希算法
前进的程序员21 小时前
告别Copilot?Codex本地化部署指南
开源·php·copilot·codex
weixin_BYSJ198721 小时前
springboot智慧公共交通系统---附源码51123
java·javascript·spring boot·python·django·flask·php
AI备忘录21 小时前
(十一)DHCP 配置命令五厂商对照:华为 华三 锐捷 迈普 思科
服务器·网络·网络协议·网络安全·华为
0xBADCODE1 天前
Flask SSTI读SECRET_KEY+伪造Session:税务系统渗透全流程
前端·后端·python·安全·web安全·网络安全·flask
迪康coolmu1 天前
企业文件外发防泄漏实践:从通道封堵到三层全链路管控
大数据·运维·网络·人工智能·安全·阿里云