이번 문제는 id와 pw를 입력받는 문제인데 where절에 id='{$_GET[id]}' and pw='{$_GET[pw]}'으로 들어간다.
문제는 두 파라미터가 '을 필터링을 하고 있는 것이 문제이다.

 

인터넷에 검색해본 결과 \를 사용하면 된다는 것을 알 수 있었다.만약 id 값이 것을 찾고 싶어서 쿼리문을 SELECT id FROM test WHERE id = '''로 작성하면 에러가 난다.
그 이유는 '를 문자로 인식하지 않기 때문이다.

 

이러한 문제 때문에 특수문자 예외처리를 해줘야하는데, 이것이 \이다.
SELECT id FROM test WHERE id = '\''로 처리하게 되면 id가 '인 것을 찾는 쿼리문으로 된다.

이것을 이용하면, SELECT id FROM prob_succubus WHERE id='\' and pw='#'으로 처리하면 WHERE 절의 id 값은 ' and pw=로 인식이 된다.

 

저 상태에 pw 파라미터에 값을 넣으면 '' 묶음에서 자유로워지는 것이다.

 

이와 같이 간단하게 풀이하였다.

복사했습니다!