<?php
$MY = create_function("","die(`cat flag.php`);");
//创建一个$MY的匿名函数,函数的作用是输出flag
//匿名函数其实是有真正的名字,为%00lambda_%d(%d格式化为当前进程的第n个匿名函数,n的范围0-999)
$hash = (openssl_random_pseudo_bytes(32));
//生成一个随机数
eval("function SUCTF_$hash(){"
."global \$MY;"."\$MY();".
"}");
//创建$hash会在eval函数中。与SUCTF拼接。形成一个新的函数名
要想拿到flag就只有调用SUCTF_XXXX随机数的函数名。或者直接调用$MY
if(isset($_GET['func_name'])){
$_GET["func_name"]();
bin2hex die();
// bin2hex()函数把ASCII字符的字符串转换为十六进制值
}
show_source(__FILE__);
写一个脚本就可以跑出来了
“flag{931c91f1-2829-49d9-9c15-7a0958581592}”