URL filtering write up
계속 못 풀고 있었던 문제였지만, 한순간의 생각으로 풀어냇다,,, 후,,,
<?php
error_reporting(0);
require __DIR__."/lib.php";
$url = urldecode($_SERVER['REQUEST_URI']);
$url_query = parse_url($url, PHP_URL_QUERY);
$params = explode("&", $url_query);
foreach($params as $param){
$idx_equal = strpos($param, "=");
if($idx_equal === false){
$key = $param;
$value = "";
}else{
$key = substr($param, 0, $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 |