728x90
이번 문제는 angular js를 이용하여 <>가 인코딩 될 때 DOM based XSS를 해야 된다.
우선 angular js는 SPA 프레임워크로 자바스크립트를 기반으로 둔다. React와 비슷하다 보면 된다.
이번 문제를 풀 때는 angular js의 표현식을 이용할 것인데
angular js는 html 내부에서도 표현식을 이용하여 작성할 수 있다.
표현식은 두 개의 중괄호 {{ }} 안에 작성된다.
우선 {{1+1}}을 입력해 angular js가 작동하는지 확인했다.
2로 입력된 걸로 보아 작동하는 것 같다.
이는 자바스크립트를 작성할 수 있다는 것을 의미한다.
https://www.hahwul.com/2017/07/12/web-hacking-angularjs-sandboxdom-based/
이곳을 참고하여
{{constructor.constructor('alert(1)')()}}를 입력하면
또한 $on.constructor , $watch.constructor를 이용하여 alert함수를 호출할 수 있다.
728x90