Write Up
DOM을 통해 페이지를 구성하고 있고, prototype pollution을 이용해 xss를 유발 시킬 수 있다.
DOM을 통해 페이지를 구성하니, js 코드를 살펴보도록 한다. obj 객체를 반환하는 코드가 존재하며, 위 그림 1과 같이 객체의 key를 위생처리하는 js 코드또한 존재한다. 하지만 위의 url 쿼리와 같이 위생처리를 우회하여, prototype pollution을 확인할 수 있다.
config 객체에 정의되는 transport_url 속성이 prototype pollution이 유발될 수 있는 가젯(포인트)이 될 것이고, 위 그림 2와 같이 exploit해준다.
prototype pollution 공격 vector
?__proto__.foo=bar
?___proto__[foo]=bar
?constructor.prototype.foo=bar
?constructor[prototype][foo]=bar