Season 1/워게임 [websec.fr] babysteps - Level 25 작성자 - 호롤로롤 3번째 시도,, level 25 문제 바로 소스코드 확인들어가자.. 코드를 보면 REQUEST_URI를 parse_url함수를 통해서 parse 한 뒤 qurey에 flag 값이 들어가면 die메시지가 출력된다. 각 함수의 특징들을 살펴보자. 1.parse_url()은 host, port, user, path, query 등의 값을 반환하는 함수 2.parse_str()은 이름=값(query)의 형태로 만들어주는 함수 3.stripos()는 문자열을 찾는 함수 자세한 내용은 아래 참고 url을 통해서 확인 가능! 정상적으로 parse_url 함수가 사용 될 경우 query문에 flag 문자열이 들어가게 되므로 die메시지가 출력되게 된다. URL: /index.php?page=flag Array ( [path] => index.php [query] => page=flag ) 비정상적인 우회(///를 사용) 할 경우는 //이후 다음에 나올 / 전에 문자열이 존재해야 host로 파싱하는데 그사이 문자열이 존재하지 않기 떄문에 NULL값이 들어가게 되고 false로 결과값을 리턴하게 된다. URL: ///index.php?page=flag Array ( [path] => NULL [query] => NULL ) 그렇게 ///(triple slash)를 사용하게 되면 query에 flag문자가 들어가지 않게 되어 flag 값을 얻을 수 있다. flag 값은 WEBSEC{How_am_I_supposed_to_parse_uri_when_everything_is_so_broooken} 참고 https://www.php.net/manual/en/function.parse-url.php https://pistolwest.github.io 공유하기 게시글 관리 MSS 'Season 1 > 워게임' 카테고리의 다른 글 suninatas/웹/22번 문제풀이 (0) 2021.07.08 [dreamhack] web-deserialize-python 문제풀이 (0) 2021.07.07 [Lord of SQLInjection] Goblin Write UP (0) 2021.07.06 [dreamhack] funjs 문제풀이 (0) 2021.07.06 Wargame - pyc decompile (0) 2021.07.05 Contents 당신이 좋아할만한 콘텐츠 suninatas/웹/22번 문제풀이 2021.07.08 [dreamhack] web-deserialize-python 문제풀이 2021.07.07 [Lord of SQLInjection] Goblin Write UP 2021.07.06 [dreamhack] funjs 문제풀이 2021.07.06 댓글 0 + 이전 댓글 더보기