SWF 디컴파일러 FFDEC (JPEX Free Flash Decompiler)

SWF 디컴파일러인 FFDEC 에 대한 설치 방법 및 간단한 사용 방법입니다. FFDEC는 SWF 파일에 대해 쉽게 분석 가능하도록 코드단에서 확인이 가능한 툴 입니다. 여기서 잠깐 위키 피디아의 SWF의 정의에 대해서 한번 보면 아래와 같습니다.

SWF는 어도비 플래시에서 멀티미디어, 벡터 그래픽, 액션스크립트 (title=undefined) 등을 처리하는 데 사용하는 파일 형식이다. 현재 웹상의 벡터 그래픽 애니메이션 영역에서 지배적인 위치를 차지하고 있으며 액션스크립트를 사용하는 브라우저 게임에도 흔히 사용된다.

우리에게 중요한 부분은 액션스크립트 입니다. SWF 파일 내에서 액션 스크립트를 통해 미디어 이상의 기능을 가질 수 있기 때문에 취약한 SWF를 통해 XSS나 URL Redirection 등 공격에 사용할 수 있습니다.

swf에서도 js 내 삽입되는 XSS와 똑같이 내부 흐름을 바꾼 후 스크립트 구문을 이용하여 XSS가 가능합니다.

GET /swfupload.swf?movieName=%22]);}catch(e){}if(!self.a)self.a=!alert(45);// HTTP/1.1

FFDEC 설치

FFDEC 의 다운로드 페이지로 접근하여 각 OS 및 필요 사항에 맞게 파일을 다운로드합니다. 이후 압축을 풀어줍시다.

unzip ffdec_4.1.1.zip 

리눅스에서는 unzip , 윈도우 환경에서는 압축 해제 프로그램을 통해 풀어내시면 됩니다.

 Archive:  ffdec_4.1.1.zip
   creating: lib/
  inflating: ffdec.bat              
  inflating: ffdec.exe              
  inflating: ffdec.jar              
  inflating: lib/JavactiveX.jar     
  inflating: lib/LZMA.jar           
  inflating: lib/avi.jar            
  inflating: lib/avi.montemedia.license.txt 
  inflating: lib/ffdec_lib.jar      
  inflating: lib/ffdec_lib.license.txt 
  inflating: lib/flamingo-6.2.jar   
  inflating: lib/flamingo.license.txt

여러 파일이 생성되는데요, zip 안에는 윈도우 사용자를 위한 exe 부터, 범용적으로 사용이 가능한 jar(java) 파일이 존재합니다.

저는 리눅스 환경이기 때문에 jar 파일을 통해서 실행합니다.

java -jar ffdec.jar

상단의 open 눌러서 swf 파일 열어주시면 Action Script code / Method,Getter,Setter Trait 에 대해 확인이 가능합니다. 코드 확인이 되니, swf 내 취약점 분석을 시작하면 됩니다 :D