23번 문제 풀이다.

 

정답이 공개되어 있다

참고하고 포스팅을 읽기 바란다.

 

 

시작은 역시 인덱스 페이지를 보고 시작하자.

스크립트를 삽입하라는 것 같다.

 

음?

역시.. 인젝트 문제이다 보니 나한테 띄우는 문제는 아닌가보다.

 

 

서버에 들어가는 결과값이 결국엔 <script>alert(1);</script> 이어야 한다는 건데

필터링이 어떤식으로 되어있나 확인을 해보자.

 

그냥 대놓고 쳐봤더니 No hack 이란다..

어떤 문자를 필터링하나 봤더니,

숫자의 경우는 상관이 없지만,

연속된 문자가 2개이상일 때 no hack 이란 문장을 출력한다.

 

머리를 엄청 쓰다가 예전에 봤던 NULL 문자를 이용한게 생각이 나서 이용해봤더니 정답이었다.

쿼리 앞에 url 인코딩 된 NULL 값을 넣어주고 스크립트를 넣어주면 성공이다.

 

원리는 php 나 c 같은 백엔드 언어의 경우 NULL 은 문자열의 끝을 나타낸다.

입력 문자열의 맨 처음이 NULL 이므로 문자열의 끝으로 인지해 뒤의 문자들은 검색을 안하게 되는것이다.

 

이러한 공격으로 웹방화벽을 우회할 수도 있다.

 

그럼 맨 앞에 %00 을 넣고 스크립트를 넣었더니

성공했다 .

 

 

%00<script>alert(1);</script>

'WarGame > WEB_Hacking' 카테고리의 다른 글

Webhacking.kr 25번 문제풀이  (0) 2015.11.14
Webhacking.kr 24번 문제풀이  (0) 2015.11.14
Webhacking.kr 21번 문제풀이  (0) 2015.11.14
Webhacking.kr 20번 문제풀이  (0) 2015.11.14
Webhacking.kr 19번 문제풀이  (0) 2015.11.14

+ Recent posts