Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-44906 — CVE-2021-44906에 대한 개념 증명으로, Function.prototype 우회를 통해 minimist에서 프로토타입 오염을 시연하며, 실행 가능한 예제와 익스플로잇 체인에 대한 상세 기술 분석을 포함합니다. | Kitploit
도구/GitHubGitHub/nevermoe/cve-2021-44906
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & Education
GitHubnevermoe/cve-2021-44906

CVE-2021-44906

CVE-2021-44906에 대한 개념 증명으로, Function.prototype 우회를 통해 minimist에서 프로토타입 오염을 시연하며, 실행 가능한 예제와 익스플로잇 체인에 대한 상세 기술 분석을 포함합니다.

저장소 보기
2년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-44906

원본 출처: https://github.com/Marynk/JavaScript-vulnerability-detection/blob/main/minimist%20PoC.zip

실행

root@kitploit:~
npm run hack

그러면 어떤 함수의 done 속성이 true로 변경된 것을 볼 수 있습니다. 명령줄 node index.js --_.concat.constructor.prototype.done true에 대한 설명:

  • --는 일반적으로 명령줄 인수에 사용되는 하이픈 기호입니다.
  • _는 minimist의 내장 키입니다: https://github.com/minimistjs/minimist/blob/v1.2.5/index.js#L37
  • .concat.constructor.prototype.done true는 _.concat.constructor.prototype.done을 true로 설정합니다. _.concat.constructor는 Function 타입이므로, 모든 Function의 프로토타입에 done이라는 속성이 추가됩니다.

프로토타입 체인이 이렇게 긴 이유는 이전 수정에서 개발자가 __proto__, Arrary.prototype, Object.prototype, Number.prototype, String.prototype을 금지했기 때문입니다. 그래서 프로토타입 속성을 가지고 있으면서 블랙리스트에 포함되지 않은 constructor를 사용해야 합니다.

또 다른 예시:

root@kitploit:~
npm run hack2

하지만 위의 두 예제에서는 함수의 정의가 아닌 값만 조작할 수 있습니다.

원인

CVE-2020-7598 (1.2.2)에 대한 수정과 1.2.3에서 개발자는 __proto__, Arrary.prototype, Object.prototype, Number.prototype, String.prototype을 확인하여 일부 취약점을 이미 수정했지만, Function.prototye을 확인하는 것을 잊었습니다. 이것이 이 익스플로잇이 Function의 속성에만 영향을 미칠 수 있는 이유입니다. 이 CVE의 수정에서 개발자는 Function.prototype과 constructor를 모두 확인했습니다: https://github.com/minimistjs/minimist/blob/v1.2.6/index.js#L73

도구 다운로드