<?php
$u = $_GET[“user”]; //变量获取
$v = $_GET[“variable”]; //$v看flag,绕过正则
$flag=‘flag{}';
if(isset($u)&&(file_get_contents($u,‘r’)===“im admin”)){//猜测data://协议
//检查u指向
echo “hello admin!<br>”;
if(preg_match(“/flag/”,$v)){ //不允许包含flag
exit(“You can’t do it”);
}else{
eval(“var_dump($$v);”);
}
}else{
echo "you are not admin ! “;
}
?>”; … ?>
,在代码审计中$v = $_GET[“variable”]; $flag='flag{}’;这里最关键的代码是这个eval(“var_dump($$v);”);以及if(preg_match(“/flag/”,$v)),的逻辑是绕过正则,使得对$v的传值等于flag的同时,绕过正则,去看到变量$flag,但是这个正则,我尝试过攻防世界的很多方法,都不太适用,希望可以得到指点,以及php7.0的正则绕过