write-ups/solveme.safflower.kr

URL filtering write up

2018. 3. 4. 01:37

계속 못 풀고 있었던 문제였지만, 한순간의 생각으로 풀어냇다,,, 후,,,


<?php
    error_reporting
(0);
    require 
__DIR__."/lib.php";

    
$url urldecode($_SERVER['REQUEST_URI']);
    
$url_query parse_url($urlPHP_URL_QUERY);

    
$params explode("&"$url_query);
    foreach(
$params as $param){

        
$idx_equal strpos($param"=");
        if(
$idx_equal === false){
            
$key $param;
            
$value "";
        }else{
            
$key substr($param0$idx_equal);
            
$value substr($param$idx_equal 1);
        }

        if(
strpos($key"do_you_want_flag") !== false || strpos($value"yes") !== false){
            die(
"no hack");
        }
    }

    if(isset(
$_GET['do_you_want_flag']) && $_GET['do_you_want_flag'] == "yes"){
        die(
$flag);
    }

    
highlight_file(__FILE__);


위와 같은 소스가 주어진다. 


 처음에는 do_you_want_flag 를 do.you.want.flag 로 우회할 수 있다는 것을 알고 너무 쉬운 문제 아닌가라고 생각했지만, 계속 풀리지 않았다,,, yes 를 우회하지 못해서,,,


 근데 다시 한 번 생각해보라,, 맨 처음에 urldecode() 라는 함수가 있다. 


 urldecode라는 함수를 이용해서 우리는 URL Fragment 를 $url 변수 안에 넣을 수 있는 것이다,,, 



 후,,,,,,,,,

'write-ups > solveme.safflower.kr' 카테고리의 다른 글

Give me a link 2 write up  (1) 2018.03.04
Hard login  (0) 2018.03.04
Hell JS write up  (0) 2018.03.04
Hash collision write up  (0) 2018.03.04
thirty six write up  (0) 2018.02.27