2016. 4. 20. 19:19 :: 취약점

안녕하세요 Message입니다.

실습환경은 Windows7 / APM / Chrome 입니다.

 

------------------------------------------------------------------------------------------------------------------------------------------

1. FCKeditor란?

------------------------------------------------------------------------------------------------------------------------------------------

FCKeditor는 게시판 에디터입니다.

거의 모든 브라우저에서 사용 가능한 에디터로서, 글작성 / html편집 /표삽입 등이 가능합니다.

현재 FCKeditor는 3.x 대로 업그레이드 되면서 CKeditor로 변경되었으나,

아직 많은 곳에서 FCKeditor를 사용하고 있습니다.

공식사이트 : http://ckeditor.com

FCkeditor 2.6.11 Ver : http://sourceforge.net/projects/fckeditor/files/

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------

2. 취약점 발생 원인

------------------------------------------------------------------------------------------------------------------------------------------

취약점이 발생하는 이유는 FCKeditor에서 제공되는 페이지관리 또는 파일업로드 기능때문입니다.

해당 기능을 사용할 수 있는 페이지에 적절한 보안조치가 이루어지지 않으면

웹쉘이 업로드되거나 홈페이지의 많은 정보가 노출될 수 있습니다.

 

아래 그림은 FCKeditor 2.6.11 버전의 기본 경로입니다.

아래처럼 connectors 폴더의 test.html 파일이나, browser\default폴더의 browser.html 파일등이 

관리되지 않고 그대로 유지되거나, 또는 파일명이 변경되지 않고 웹서버에 올라갈 경우

웹쉘을 업로드하고, 웹서버를 탐색하는 용도로 사용될 수 있습니다.

 

 

------------------------------------------------------------------------------------------------------------------------------------------

3. 간단실습

------------------------------------------------------------------------------------------------------------------------------------------

1) APMSETUP or 웹서버

APMSETUP을 이용하여 실습환경을 구성했습니다. (설치방법은 매우 간단하니 생략)

Visual Studio 등으로 웹어플리케이션 프로젝트 생성도 무방할 것 같으나,

제 PC에 이미 APM이 설치되어 있어서 빠른 결정....^^;

설치후 정상동작을 확인해줍니다.

 

2) 웹서버에 FCKeditor 설치

상단의 FCKeditor 2.6.11을 다운로드 후

C:\APM_Setup\htdocs\fckeditor 경로에 압축을 풀어줍니다.

압축해제 후 C:\APM_Setup\htdocs\fckeditor\_samples\default.html 페이지에 접속하여 아래와 같은 창이 뜨면 성공입니다.

 

3) 업로드 페이지 접속

fckeditor/editor/filemanager/connectors/test.html에 접속하면

파일을 업로드할 수 있는 아래와 같은 페이지가 뜨게됩니다.

Connector를 PHP로 변경해주고, 파일선택 후에 업로드를 시도해봅니다.

보안설정 때문에 아마 정상동작하지 않을겁니다.

 

4) 설정변경

파일업로드를 시도하면 아래와 같은 보안설정 오류가 발생합니다.

실습을 위해서 fckeditor\editor\filemanager\connectors\php\config.php 파일의 설정을 변경해야 합니다. (+삽질지수 증가)

 

아래와 같이 설정을 Config['Enabled'] 설정을 false에서 true로 바꿔줍니다.

 

하지만 이후에도, 아래와 같은 오류창이 발생합니다.

파일확장자에 대한 제한이 걸려 있어서 발생하는 오류입니다.

 

파일확장자를 jpg 등으로 우회해서 올리거나

아래와 같이 HTML확장자 제한과 관련된 Config['HtmlExtensions'] 옵션과

파일확장자 제한과 관련된 Config['AllowedExtensions']['File'] 옵션에 html 확장자를 추가해줍니다.

 

 이후에는 아래와 같이 정상적으로 파일이 업로드 되는 것을 확인할 수 있습니다.

 

파일이 업로드 되는 경로는 Config['UserFilesPath'] 옵션에 적혀 있는 경로입니다.

따로 변경하지 않을 경우 아래와 같이 htdocs/userfile/ 경로에 파일이나 폴더가 생성됩니다.

 

5) 웹쉘업로드

파일업로드가 정상적으로 된다면, 아래와같이 웹쉘이 업로드되어 홈페이지의 정보가 유출될 수 있습니다.

웹쉘은 구글링을 하시면 쉽게 얻으실 수 있습니다.

 

6) 기타 취약한 경로들

버전이나 홈페이지마다 다를 수 있지만, 취약한 기본적인 경로는 아래와 같습니다.

- /FCKeditor/editor/filemanager/browser/default/connectors/test.html

- /FCKeditor/editor/filemanager/browser/default/browser.html

- /FCKeditor/editor/filemanager/upload/test.html

 

------------------------------------------------------------------------------------------------------------------------------------------

4. 대응방안

------------------------------------------------------------------------------------------------------------------------------------------

1) 샘플파일 또는 테스트파일을 삭제하거나 관리자 외 접근할 수 없도록 접근제어 방안을 마련합니다.

2) 서버에서 파일의 실행권한을 제거합니다.

3) IPS와 같은 보안솔루션을 이용하여 파일업로드 또는 웹쉘 업로드를 차단합니다.

 

 

마무리

FCK취약점으로 실제 어떻게 파일이 업로드 되는지 실습해보고자

환경을 구축하고 웹쉘을 업로드 해보았습니다.

읽어주셔서 감사합니다.

 

posted By Message.

Commit your way to the LORD, trust in him and he will do this. [PSALms 37:5]

posted by Red_Message