5번 문제 ( wolfman )
[ 문제접근 ]
if( preg_match ( '/ /i' , $_GET [ pw ])) exit( "No whitespace ~_~" );
1. 위에 적혀있는 조건문을 분석해보면 whitespace가 입력되면 No whitespace를 띄움
> 화이트스페이스(whitespace)란? :: 공백형태로 된 문자형태(스페이스, 탭, 줄바꿈 등)
?pw=%20 (%20은 공백)
2. if( $result [ 'id' ] == 'admin' ) : 이 조건문을 통해 쿼리문 질의결과의 id가 admin일 경우 solve ( "wolfman" ); 시켜줌
=> 방법 : whitespace를 우회하여 아이디를 admin으로 바꿔준다
[ 문제풀이 ]
더보기
<정답> : ?pw='or%0aid='admin
이번 문제에서는 공백을 필터링하고 있기 때문에, 우리는 공백을 대신하여 사용할 수 있는 공백문자를 필요한 위치에 공백대신 URL에 삽입하여 진행하면 된다. 정답에 사용된 문자가 아니어도 공백을 대체할 수 있는 문자를 넣으면 풀리게 된다. 아래 다른 공백코드를 남겨두었으니 참고하시길
Tab (%09)
Line Feed (%0A)
Vertical Tab (%0B)
Form Feed (%0C)
Carriage Return (%0D)
"WOLFMAN Clear!" 가 나타났다! 정답!
이제 다음 스테이지로 넘어가도록 하자