본문 바로가기

Wargame(hacking)/PortSwigger

Lab : Client-side prototype pollution via flawed sanitization

Write Up

 

DOM을 통해 페이지를 구성하고 있고, prototype pollution을 이용해 xss를 유발 시킬 수 있다. 

 

그림 1

 

DOM을 통해 페이지를 구성하니, js 코드를 살펴보도록 한다. obj 객체를 반환하는 코드가 존재하며, 위 그림 1과 같이 객체의 key를 위생처리하는 js 코드또한 존재한다. 하지만 위의 url 쿼리와 같이 위생처리를 우회하여, prototype pollution을 확인할 수 있다. 

 

그림 2

 

config 객체에 정의되는 transport_url 속성이 prototype pollution이 유발될 수 있는 가젯(포인트)이 될 것이고, 위 그림 2와 같이 exploit해준다. 

 

 

 

prototype pollution 공격 vector

?__proto__.foo=bar
?___proto__[foo]=bar

?constructor.prototype.foo=bar
?constructor[prototype][foo]=bar