No one knows regex better than me ---


regex 是正则表达式的意思

<?php 
error_reporting(0);                                                                        //屏蔽错误
$zero=$_REQUEST['zero'];                                                                   //变量请求参数
$first=$_REQUEST['first'];                
$second=$zero.$first;                                                                      //$second变量形式为xxx.xxx
if(preg_match_all("/Yeedo|wants|a|girl|friend|or|a|flag/i",$second)){                      //匹配变量的内容是否再正则表达式中
    $key=$second;
    if(preg_match("/\.\.|flag/",$key)){                                                    //匹配变量内容,绕过该分支,$key=$second只需避免..与flag(小写)出现
        die("Noooood hacker!");
    }else{
        $third=$first;                                                                     
        if(preg_match("/\\|\056\160\150\x70/i",$third)){                                   //匹配变量内容,"/\\|\056\160\150\x70/i",这是16进制与进制的东西,转换成10进制,再转成ascii码后即为|.php
            $end=substr($third,5);                                                         //选择third变量的5号下标的字符并删除,也就是说我们要使用混淆字符去绕过
            highlight_file(base64_decode($zero).$end);//maybe flag in flag.php             //base64_decode对zero变量进行解码
        }
    }
}
else{
    highlight_file(__FILE__);
}

posted @ 2021-03-26 11:19  网抑云黑胶SVIP用户  阅读(300)  评论(0编辑  收藏  举报