그런데 3번은 퍼즐이다. 아..
이런 퍼즐같은걸 본적이 있는 것 같은데 해본적은 없다. 어쨌든 빈칸을 누르면 까맣게 클릭되는 퍼즐이다. 퍼즐을 풀어보자.
스도쿠 비슷한거인것 같은데, 사실 난 이 퍼즐 푸는건 포기했다. 잘 이해가 안되서 찾아봤다...
한줄에 표시되어야 하는 갯수를 나타낸다고 한다.
정답은 이렇다. 퍼즐을 다 풀고 나면 친숙한 폼이 기다려준다.
인젝션 하라고 막 손짓하는것 같다.
아무데이터를 입력해보면 내역이 나온다.
안타깝게도 이 문제를 푸는데 여러 시도를 못해봤다.
' 나 or이나 = 등 다양한 문자열이 제한된다는데 그것만 입력하면 타임아웃이 떨어지는 바람에...
어쨌든 정답은 or을 대체하는 문자인 || 를 폼에 넣어주어 bypass하면된다.
이문제로 배울점은, 단순 blacklist 형 회피도 회피지만, httpentities 처리를 해주어 원천적으로 특수문자에 대한 처리를 해야한다는것이다.
(참고로, mysql_real_escape_string은 %나 _를 변경하지 않는다. 이 점도 참고 하면 좋겠다.)