题目
在这里插入图片描述
<?php session_start(); include('config.php'); if(empty($_SESSION['name'])){ show_source("index.php"); }else{ $name=$_SESSION['name']; $sql='select pass from user where name="'.$name.'"'; echo $sql."<br />"; system('4rfvbgt56yhn.sh'); $query=mysqli_query($conn,$sql); $result=mysqli_fetch_assoc($query); if($name==='admin'){ echo "admin!!!!!"."<br />"; if(isset($_GET['c'])){ preg_replace_callback("/\w\W*/",function(){die("not allowed!");},$_GET['c'],1); echo $flag; }else{ echo "you not admin"; } } } ?>
分析
题目提示中有写register.php login.php 两个地址
一个是注册,一个是登录
分析上面代码,应该是要admin账号登陆,并且c绕过正则表达式传参,才会显示flag
在注册页面发现不允许注册admin,于是注册admin+空格。可以注册,并且可以在登陆页面登录
在这里插入图片描述
但是还没回显flag,还需要绕过正则
if(isset($_GET['c'])){ preg_replace_callback("/\w\W*/",function(){die("not allowed!");},$_GET['c'],1); echo $flag; }
令c为空即可
在这里插入图片描述
得到flag。