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의 속성을 변경한다면 새로운 객체가 만들어 지더라도 변경된 속성을 참조할 수 있다.
'취약점.' 카테고리의 다른 글
'csv-plus' HTML Injection 취약점 #CVE-2022-21241 (0) | 2022.08.01 |
---|---|
'getgrav/grav' XSS 취약점 #CVE-2022-0268 (0) | 2022.07.17 |
'Drogon' Arbitray File Write 취약점 #CVE-2022-25297 (0) | 2022.07.09 |
댓글