2018. 7. 13.

[CVE-2017-5638] Apache Struts2 취약점 분석

1. Apache Struts2 취약점 분석
해당 취약점은 JaKarta Multipart 파서를 기반으로 한 파일 업로드를 수행할 때 HTTP Request Header의 Content-Type 을 변조해 원격코드 실행을 가능하게 한다.


1-1) Apache Structs2 란

JAVA EE(Java Platform Enterprise Edition) 웹 애플리케이션을 개발하기 위한 오픈소스 프레임워크이다. 

2. Apache Struts2 취약점 분석 환경 구축

2-1) Java 설치
  • http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2-2) 설치 후 환경 설정

- 시스템 변수 편집

;%JAVA_HOME%\bin; 추가


- 설치 확인

2-2) Apache Tomcat 설치
  • https://tomcat.apache.org/download-70.cgi

2-3) Tomcat 환경 설정

  • http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3
이후 이클립스에서 테스트하기 위해, 압축을 풀고 conf 파일의 server.xml 파일을 수정해서 사용 포트를 변경해야 한다. (Port 3개 변경 필요)
bin 폴더에서 startup.bat, shutdown.bat 파일로 서버 기동을 할 수 있다.

2-4) Eclipse 설치
  • http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3


2-5) Struts2 다운로드
  • http://mvnrepository.com/artifact/org.apache.struts/struts2-rest-showcase/2.3.31


2-6) 이클립스 실행 및 설정

- 이클립스 실행 > Window > Preference > Server > Runtime Environmments > Add > Apache Tomcat v7.0 > browse > 다운로드 한 tomcat 7.0 폴더 선택

- File > Import > war file > next < browse > 설치한 structs2 파일 선택

- Structs 2 우 클릭 > Run As > Run on Server


** 실수로 Navigator 창을 내렸을 때는, windows > show view > navigator 를 클릭

- 톰캣에서 사용하는 포트를 모두 바꿔야 실행이 된다.
- 제대로 되지 않으면 Tomcat 서비스를 중지 시킨 후 다시 실행해본다.

2-7) 아래와 같이 페이지가 뜨는것이 확인된다.


2-8) 공격 코드를 (https://www.exploit-db.com/exploits/41570/) 다운 받고 실행하면 다음과 같이 명령어가 실행되는 것을 볼 수 있다.


3. 취약점 분석



#참고
  • https://blog.rebforpwn.com/index.php/2018/02/02/697/
  • https://blog.rebforpwn.com/index.php/2018/02/02/702/
  • https://m.blog.naver.com/PostView.nhn?blogId=skinfosec2000&logNo=220760726674&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

Popular Posts

Recent Posts

Blog Archive

Powered by Blogger.