3번 문제를 클릭하면 퍼즐 그림이 출력되고, 숫자 외각의 5*5 사이즈의 타일을 클릭하면 검은색 타일로 채워진다.


타일 한 개를 클릭 후 'gogo' 버튼을 클릭하면 'No' 메시지가 출력 후 퍼즐이 있는 페이지로 이동된다.



퍼즐의 정답이 틀리므로 'No' 메시지가 출력된다. 주변 숫자를 자세히 살펴보면 패턴을 쉽게 확인할 수 있다. 위쪽에 있는 숫자와 왼쪽에 있는 숫자의 개수는 해당 라인의 검은색 타일 개수이다.


 

최종적인 퍼즐 그림은 다음과 같으며 검은색 타일의 개수가 위쪽에 있는 숫자와 왼쪽에 있는 숫자의 개수와 일치한다.



'gogo' 버튼을 클릭하면 이름을 입력할 수 있는 페이지로 이동된다. 입력 폼에 임의의 문자열을 입력 후 'write' 버튼을 클릭한다.



name, answer, ip 정보가 화면에 출력되고, 이름을 다르게 입력해도 answer, ip 정보는 동일하게 출력된다.



name은 사용자가 입력한 문자열, answer는 5*5 사이즈의 검은색 타일, ip는 현재 시스템의 공인 아이피 주소를 의미한다.



name 매개변수에 SQL 인젝션 구문을 주입해보면 별다른 증상이 보이지 않고, answer 매개변수에 SQL 인젝션 구문을 주입해보면 'no hack' 메시지가 출력된다.



기본적인 참 구문인 ' or 1=1, or 1=1, or 2>1 등을 주입해보면 모두 필터링이 된다. or 구문이 필터링이 되었으므로 이에 해당하는 문자인 || 1를 입력하면 참이 되어 3번 문제의 키 값이 출력된다. (name이 admin인 answer)



▶ WebHacking.kr 1번 문제 풀이

▶ WebHacking.kr 2번 문제 풀이

▶ WebHacking.kr 4번 문제 풀이

▶ WebHacking.kr 5번 문제 풀이

▶ WebHacking.kr 6번 문제 풀이

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유