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 |