CTF web之旅 30

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}

 
posted @ 2021-04-21 15:10  C10ud  阅读(48)  评论(0编辑  收藏  举报