这里我们来简要分析一下代码
error_reporting(0);
#这一行关闭了PHP的错误报告,这意味着在执行过程中不会显示任何错误信息。
include('flag.php');
#这一行尝试包含名为flag.php的文件
if(isset($_GET['token'])){
#isset($_GET['token']) 如果请求中包含了token参数,则进行以下验证逻辑
#$_GET
$token = md5($_GET['token']); #将传入的token参数使用MD5哈希算法进行处理,生成$token的哈希值
#条件控制语句,//如果md5加密后的第一位=第14位=第17位 and 第1位+第14位+第17位除以第1位等于第31位就输出
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
echo $flag;
}
}
}else{
highlight_file(__FILE__);
}
知道了原理,接下来我们通过执行脚本来算出这个token
下面的脚本来自Cyberbolt提交的wp