본문 바로가기
악성코드 정보

Apache Struts2 원격 코드 실행 취약점

by xcoolcat7 2013. 7. 19.

2013년 7월 16일 Apache Struts2의 취약점(CVE-2013-2251)이 공개되었다. 해당 취약점은 Apache Struts의 특정 매개변수에 공격 구문을 전달하여, 파일 생성 및 원격 명령을 수행 할 수 있다.

7월 17일 오후 Apache Struts2 공격툴이 공개된 이후 해당 취약점을 이용한 공격이 급증하고 있으며 기업의 중요 서버에 대한 침입 시도와 피해 사례가 다수 확인되고 있다.

Apache.org는 이 취약점을 위험도 [매우 위험]으로 구분하고 있으며, 현재 패치를 제작하여 배포하고 있다.

이번 보안 업데이트의 적용 대상은 다음과 같다.

 Struts 2.0.0 - Struts 2.3.15

취약점은 Apache Struts 2.3.15 이하의 버전에서 “action:”, “redirect:”, “redirectAction:”와 같은 매개변수에 특정 구문이 전달될 때, Struts가 해당 매개변수들에 대한 입력 값 검증을 제대로 수행하지 않아 발생한다. 공격자는 원격에서 임의의 코드를 삽입할 수 있으며, 검증되지 않은 해당 코드를 서버에 삽입할 수 있다.

공격 예를 다음과 같다.

    hxxp://target/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()} 


    hxxp://target/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()} 


    hxxp://target/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}


현재 관련 공격 도구가 등장해 공격자가 손쉽게 공격 할 수 있다.


Struts2 취약점 공격도구 1


Struts2 취약점 공격도구 2


공격 도구를 이용할 경우 다음과 같은 GET 명령을 볼 수 있다.


취약점 해결을 위해 Struts 2.3.15 이하 버전은 2.3.15.1 이상으로 업데이트 해야 한다.

다운로드 주소 : http://struts.apache.org/download.cgi#struts23151


자세한 내용은 다음 주소를 참고하면 된다.

http://struts.apache.org/release/2.3.x/docs/s2-016.html


안랩 TrusGuard 제품군에서는 다음 시그니처로 해당 공격을 차단 할 수 있다.
-  Apache_struts_attack_tool (CVE-2013-2251)
-  Apache_struts_remote_command_exec(CVE-2013-2251)



댓글