문제 페이지는 해당 페이지와 같다.
입력창이 존재하고 문구를 보면, 이 문제는 <script> alert(1); </script> 를 인젝션하면 풀리는 문제라는 것을 알 수 있다.
<script> alert(1); </script> 를 입력창에 입력하면 no hack 이라는 문구가 출력된다.
URL 을 확인해보면 입력창에 입력한 값이 Get 방식으로 code라는 파라미터 값으로 전송되는 것을 확인할 수 있다.
메인 페이지로 다시 돌아와 입력창에 a 를 입력하면 a 가 출력된다.
하지만 ab 라고 입력하면 no hack이라는 문구가 출력된다.
영어를 연속으로 입력하면 no hack 출력되는 거 같다.
숫자를 입력하면 하나든 연속으로 입력하든 모두 출력되는 것이 확인된다.
또한, 특수문자를 입력해도 하나든 연속으로 입력하든 모두 출력되는 것이 확인된다.
숫자와 영어를 , 특수문자와 영어를 연속으로 입력해도 출력 되는 것이 확인된다.
띄어쓰기를 통해 a와 b의 사이에 공백을 두어 입력하면 출력되는 것을 확인할 수 있다.
최종적으로 영어가 2개이상 연속으로 나열되어 입력된 경우에만 no hack 문구가 출력 되는 것으로 보인다.
그래서 영어문자 사이에 null 값을 집어넣어 우회하고자 하는데 null의 URL 인코딩 값인 %00을 연속되는 영어문자 사이에 넣어 입력한다.
단 입력창에 입력한 경우 %00 이 URL 인코딩이 되어 GET 방식으로 전송되기 때문에 URL 에서 직접 code 파라미터 값을 수정하여 입력한다.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t> |
alert 창이 뜨고 확인을 누르면 문제가 풀렸다는 것을 확인할 수 있다.
'프로젝트 > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge(old) 35번 문제 (0) | 2021.07.13 |
---|---|
[Webhacking.kr] Challenge(old) 28번 문제 (0) | 2021.07.13 |
[Webhacking.kr] Challenge(old) 22번 문제 (0) | 2021.07.13 |
[Webhacking.kr] Challenge(old) 16번 문제 (0) | 2021.07.12 |
[Webhacking.kr] Challenge(old) 27번문제 (0) | 2021.07.08 |