프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 23번 문제

Uggjjini 2021. 7. 13. 15:01

문제 페이지는 해당 페이지와 같다.

 

 

입력창이 존재하고 문구를 보면, 이 문제는 <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 창이 뜨고 확인을 누르면 문제가 풀렸다는 것을 확인할 수 있다.