본문 바로가기
Portswigger/XSS

Portswigger - Reflected XSS into a JavaScript string with angle brackets HTML encoded solution.

by jh117jh 2023. 9. 8.
728x90

이번 문제는 자바스크립트 내부에서 발생하는 취약점을 찾아 alert함수를 호출하면 된다. 

 

검색기능에 취약점이 존재하므로 임의의 검색어(123)를 검색한 결과 

searchTerms를 받아와 img태그 안에 넣어주고 있다.

여기서 searchTerms는 encodeURLComponent함수로 인해 인코딩 되어 문자열로 삽입으로 <>를 사용할 수 없다.

 

그러므로 우리는 위에 var searchTerms로 정의해주는 부분을 공략해야 된다.

sql문제를 풀때 파라미터 부분을 닫고 새로운 쿼리문을 작성하듯이

나도 'alert(0)'을 입력하여 alert함수를 출력하려 했다.

아...

 

자바스크립트도 c와 같이 구문이 끝나면 ;을 붙여준다.

그러므로 ';alert(0);'을 입력해 주면

해석하면 searchTerms에는 공백이 들어가고 alert(0)은 다른 구문으로 인식되는 것이다.

 

이거와 다른 개념으로 +도 가능하다.

+는 자바스크립트에서 문자열을 연결하는 기능을 가지고 있다.

'+alert(0)+'을 입력하면

공백 + alert(0) + 공백으로 해석되어 alert(0) 함수를 호출할 수 있다.

 

728x90