id가 admin인 결과를 반환해야하는데 문자열 admin에 필러팅이 걸려져 있다.
그럼 그동안 풀었던 방법대로 or와 Hex 값을 넣어줌으로써 풀이하면 될까? 이 방법도 '를 필터링을 걸어줌으로 막고 있었다.


Try - 1


0x27은 '의 아스키코드 Hex 값이다.
혹시나 '를 아스키코드 Hex 값으로 넘겨주면 인식하지 않을까? 라는 생각에 넣어봤지만 실패하였다.


Try - 2

webhacking.kr의 문제 풀이를 하면서 배웠던 공백을 이용한 방법을 이용해봤다.
만약 mysql에서 id 컬럼을 만들 때 varchar의 크기를 255로 설정하였고 저장된 값은 ‘admin’ 5글자이면 나머지 250의 크기는 공백으로 처리가 된다.
이 점을 이용하여 ‘admin         ‘를 요청하면 mysql은 ‘admin’으로 인식된다.

 

하지만 admin 필터링을 우회를 못하기 때문에 hehe가 출력되었다.


Try - 3

코드를 다시 보니 admin을 필터링하는 preg_match 함수에서 i 옵션이 없다는 것을 알 수 있었다.
즉, 대문자를 인식을 못한다는 것이다.

 

엄청 간단한 문제인데 코드를 대충봐서 시간을 많이 소비하였다.

복사했습니다!