Metasploit/Vulnerability

Apache Commons Text RCE(CVE-2022-42889 취약점 )

LuCeT3 2022. 10. 24.
728x90
반응형

해당 글은 해킹내용을 포함하고 있으며, 공부용으로 작성된 것입니다. 해당 내용을 기반으로 해킹을 시도하거나 취약점을 악용할 경우 모든 행위에 대한 책임은 악용한 사람(사용자)에게 있습니다. 

악용하지마세요!

최근에 Apache Commons Text라는 라이브러리에서 원격코드실행 취약점이 발견되어서 패치가 되었다.

취약버전은 commons text 1.5 ~ 1.9라고 발표되었다. 패치는 1.10에서 이루어졌다.

NVD의 내용의 원문을 확인해보면 

Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded. The standard format for interpolation is "${prefix:name}", where "prefix" is used to locate an instance of org.apache.commons.text.lookup.StringLookup that performs the interpolation. Starting with version 1.5 and continuing through 1.9, the set of default Lookup instances included interpolators that could result in arbitrary code execution or contact with remote servers. These lookups are: - "script" - execute expressions using the JVM script execution engine (javax.script) - "dns" - resolve dns records - "url" - load values from urls, including from remote servers Applications using the interpolation defaults in the affected versions may be vulnerable to remote code execution or unintentional contact with remote servers if untrusted configuration values are used. Users are recommended to upgrade to Apache Commons Text 1.10.0, which disables the problematic interpolators by default.

원문 : https://nvd.nist.gov/vuln/detail/CVE-2022-42889

이라고 적혀있는데...

 

이를 간단히 살펴보면

commons text에는 변수 보간(보관X)

  • (명사 수학 변수  함수 형태는   없으나  가지  대한 함숫값  알려져 있을   사이의 임의의  대한 함숫값을 추정하는 . (네이버 국어사전) ) 을 수행하여 속성을 확장 시킬 수 있는데 해당 형식은 우리가 많이본 "${prefix:name}"의 형식이다. 여기서 prefix는 commons text의 default lookup의 인스턴스를 찾게 되는데 이때 원격코드 실행이 가능하다. 

해당 내용을 뭐 대충 읽어보면 이런 내용이다. 그래서 실제로 가능한지 해보자!!

두둥 간편하게 하기위해 docker로 테스트를 할것이다.

 

순서대로 명령어를 조져조져해보자!!

java를 위한 maven을 설치하고~

sudo -s

apt-get install docker.io

apt-get install maven

mvn clean install

docker build --tag=text4shell . //Dockerfile 경로

docker run -p 80:8080 text4shell

여기까지 하면 해당 이미지를 볼수있다.

이미지의 경우 테스트로 하다보니 위의 코드랑 다른점 양해부탁드립니다.

 

여기까지 했으면 이제 브라우저를 통해 접속한다. 

hxxp://localhost/text4shell/attack?search=<payload>

 

여기서 이제 터미널을 한개 더 열어서 

sudo -s

docker images

docker run -it <images_id> /bin/bash

cd /tmp

ls -al

이렇게 하면

 

성공하는 것을 확인 할수 있다. 끄읏

728x90
반응형

'Metasploit > Vulnerability' 카테고리의 다른 글

Nexpose 궁금증이 풀리는 순간  (0) 2022.11.11
Nexpose를 사용하면서 의문인점?  (0) 2022.11.06

댓글0