ctfshow web12
查看php
<?php function replaceSpecialChar($strParam){ $regex = "/(select|from|where|join|sleep|and|s|union|,)/i"; return preg_replace($regex,"",$strParam); } if(strlen($password)!=strlen(replaceSpecialChar($password))){ die("sql inject error"); } if($password==$_SESSION['password']){ echo $flag; }else{ echo "error"; } ?>
if($password==$_SESSION['password']){
echo $flag;
这是关键
需要让传入的password和session中的password进行相等
抓包查看默认传入的密码 并且发现cookie头中有phpsessid值
服务端之后每次接收到客户端的请求就都能根据这个PHPSESSID来找到服务端的session文件
让PHPSESSID为空 服务端的session文件查不到$_SESSION['password']结果 返回为空

和上题一样的思路 空等于空进行绕过
go 得到flag
ctfshow{1c581c96-f129-4b07-b592-3f1ac614cc1e}