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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-21978 — 출력(에코)이 반환되는 취약점 익스플로잇 스크립트 | Kitploit
도구/GitHubGitHub/skytina/cve-2021-21978
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubskytina/cve-2021-21978

CVE-2021-21978

출력(에코)이 반환되는 취약점 익스플로잇 스크립트

저장소 보기
25515년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-21978

응답(echo)이 포함된 취약점 악용 스크립트, 더 간단한 방법

0. 취약점 정보

VMware View Planner 웹 관리 인터페이스에는 로그 업로드 기능 파일을 업로드할 수 있는 진입점이 있으며, 인증이 필요하지 않고 로그 파일 경로를 사용자가 제어할 수 있습니다. 업로드 로그 기능 파일 log_upload_wsgi.py를 덮어써서 RCE를 달성할 수 있습니다.

취약점 코드:

root@kitploit:~
def application(environ, start_response):
    logger.debug("application called")

    if environ['REQUEST_METHOD'] == 'POST':
        post = cgi.FieldStorage(
            fp=environ['wsgi.input'],
            environ=environ,
            keep_blank_values=True
        )

        # TO DO: Puth path in some config or read from config is already available
        resultBasePath = "/etc/httpd/html/vpresults"
        try:
            filedata = post["logfile"]
            metaData = post["logMetaData"]

            if metaData.value:
                logFileJson = LogFileJson.from_json(metaData.value)

            if not os.path.exists(os.path.join(resultBasePath, logFileJson.itrLogPath)):
                os.makedirs(os.path.join(resultBasePath, logFileJson.itrLogPath))

            if filedata.file:
                if (logFileJson.logFileType == agentlogFileType.WORKLOAD_ZIP_LOG):
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, WORKLOAD_LOG_ZIP_ARCHIVE_FILE_NAME.format(str(logFileJson.workloadID)))
                else:
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, logFileJson.logFileType)
                with open(filePath, 'wb') as output_file:
                    while True:
                        data = filedata.file.read(1024)
                        # End of file
                        if not data:
                            break
                        output_file.write(data)

1. 의존성

root@kitploit:~
pip install requests

2. 탐지

root@kitploit:~
git clone https://github.com/skytina/CVE-2021-21978
cd CVE-2021-21978
python3 CVE-2021-21978.py https://192.168.80.3/

image-20210305162131318

3. 취약점 악용

취약점 악용 스크립트는 log_upload_wsgi.py를 덮어써서 백도어로 만듭니다.

image-20210305162339613

4. 참고 링크

취약점 악용 출처: https://twitter.com/osama_hroot/status/1367258907601698816

VMware 공식 공지: https://www.vmware.com/security/advisories/VMSA-2021-0003.html

면책 조항

  • 본 도구는 보안 담당자의 보안 테스트 및 연구 목적으로만 사용됩니다. 무단 테스트로 인해 발생하는 직접적 또는 간접적 결과 및 손실은 모두 사용자 본인의 책임입니다.
  • The tool is only used for security testing and research by security personnel. Any direct or indirect consequences and losses caused by unauthorized testing are the responsibility of the user.

위 내용이 도움이 되었다고 생각되면 공식 계정을 팔로우해 주세요.

도구 다운로드