본문 바로가기
Portswigger/XSS

Portwigger - DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encoded

by jh117jh 2023. 9. 11.
728x90

이번 문제는 angular js를 이용하여 <>가 인코딩 될 때 DOM based XSS를 해야 된다.

 

우선 angular js는 SPA 프레임워크로 자바스크립트를 기반으로 둔다. React와 비슷하다 보면 된다.

 

이번 문제를 풀 때는 angular js의 표현식을 이용할 것인데

https://jundol.me/65

 

[튜토리얼/번역] AngularJS Expressions (AngularJS 표현식)

AngularJS ExpressionsAngularJS 표현식은 두개의 중괄호 안에 작성됩니다 : {{ 표현식 }}. AngularJS 표현식의 HTML 데이터 바인딩은 ng-bind 지시자와 같은 역할을 합니다. AngularJS 표현식이 사용된곳에 정확하

jundol.me

angular js는 html 내부에서도 표현식을 이용하여 작성할 수 있다.

표현식은 두 개의 중괄호 {{ }} 안에 작성된다.

 

우선 {{1+1}}을 입력해 angular js가 작동하는지 확인했다.

2로 입력된 걸로 보아 작동하는 것 같다.

 

이는 자바스크립트를 작성할 수 있다는 것을 의미한다.

 

https://www.hahwul.com/2017/07/12/web-hacking-angularjs-sandboxdom-based/

 

AngularJS Sandbox Escape로 알아보는 constructor XSS와 Prototype Pollution

AngularJS는 웹 상에서 많이 사용되는 개발 프레임워크입니다. 이런 프레임워크에는 당연히 보안 로직, 정책이 들어가게되죠. 그 중에 대표적인 것은 바로 SandBox 입니다. Sandbox 로 인해 우리는 성공

www.hahwul.com

이곳을 참고하여 

 

{{constructor.constructor('alert(1)')()}}를 입력하면

 

또한 $on.constructor , $watch.constructor를 이용하여 alert함수를 호출할 수 있다.

728x90