old-23

old-23

old-23

alert(1);를 주입하라고 한다.

페이지 소스 코드를 살펴보면

Challenge 23 body { background:black; color:white; font-size:10pt; } input { background:silver; color:black; font-size:9pt; } Your mission is to inject alert(1);

GET 방식이라는 것 외에는 힌트가 될 만한 것이 보이지 않는다.

input 박스에 1을 입력하면

입력한 값 그대로를 출력한다.

GET방식이므로 URL 창에 ?code=alert(1);를 입력하면

"no hack"을 출력한다.

input 박스에 <>;()를 입력하면

<, >, ;, ()는 필터링의 대상이 아닌 것을 알 수 있다.

input 박스에 alert나 script를 입력하면

"no hack"을 출력한다.

즉, alert와 script 문자열 그대로를 필터링한다.

이 경우, 문자 사이사이에 NULL 문자(URL encoding 방식으로 %00)을 입력하면 된다.

?code=a%00l%00e%00r%00t(1);를 입력하면

문제를 해결할 수 있다.

from http://woong971.tistory.com/211 by ccl(A) rewrite - 2021-12-06 14:26:46