'액션스크립트'에 해당되는 글 2건
- 2012.03.12 어도비 플래시 취약점 악용한 온라인게임핵 유포 주의
- 2009.01.30 플래쉬-액션스크립트 서버와 데이터 통신 (XMLConnector)
트윗하기 | |||
[보안뉴스 권 준] 최근 Adobe Flash Player 취약점을 이용한 타깃 공격 관련 문서파일이 확인됐다고 발표한 안랩 ASEC(http://asec.ahnlab.com)은 이번 주말에 앞서 언급한 타킷 공격과 관련된 취약점을 국내 웹사이트를 통해 전파되는 온라인게임핵도 이용하여 악성코드를 감염시키는 것으로 확인됐다고 밝혔다.
해당 취약점은 웹페이지에 삽입된 악성 SWF 파일에서 아래와 같은 액션 스크립트로 MP4 파일을 로드하고 있으며 아래 코드에서 MP4 파일은 ee.jpg이다.
|
[그림 1] SWF 파일 내부의 액션 스크립트, MP4 파일을 로드하는 부분 |
이 취약점은 얼핏 보기에는 이전부터 꾸준히 이용되고 있던 역시 MP4 파일 관련 취약점인 CVE-2011-2140 취약점과 떨어지는 형태나 패턴이 유사하나 2개의 파일을 비교해보면 확연히 다름을 알 수 있다.
현재 악성코드는 이 두 가지 취약점을 모두 이용하여 감염시키고 있으며 이전부터 이용되던 CVE-2011-2140 취약점은 ea.jpg 파일명으로, 이번에 발견된 CVE-2012-0754는 ee.jpg라는 파일명으로 MP4 파일을 생성하여 사용하는 것으로 파악됐다고 밝혔다.
|
[그림 2] CVE-2012-0754 취약점 관련 MP4 파일 |
|
[그림 3] CVE-2011-2140 취약점 관련 MP4 파일 |
현재 국내 많은 사이트에서 해당 취약점을 이용한 온라인 게임핵 유포가 발생되고 있으므로 http://get.adobe.com/kr/flashplayer/사이트에 접속하여 최신 버전의 Adobe Flash Player 를 다운로드 받아 설치 및 업데이트할 것을 안랩 ASEC 측은 당부했다.
·온라인게임핵
: 온라인 게임 계정을 탈취하는 바이러스
[권
준 기자(editor@boannews.com)]
출처 : 보안뉴스

트윗하기 | |||
플래시에서 서버와 데이터 통신에 사용되는 클래스로, 데이터 로드가 성공적으로 수행되었는지를 확인하고 다운로드 진행상황을 모니터링 할 수 잇는 클래스 입니다. 또한 객체에 있는 모든 변수를 지정된 URL(서버사이드 프로그램)로 전송할 수 있고, 지정된 URL에 있는 모든 변수를 객체에 로드할 수 있습니다.
속성
contentType : String
LoadVars.send() 메서드 또는 LoadVars.sendAndLoad()메서드를 호출할 때 서버에 전송되는 MINE유형(데이터의 기본 내용 형식)입니다. 기본값은 application/x-www-form-urlencoded입니다.
loaded : Boolean
load 또는 sendAndLoad작업이 완료 되었는지 여부를 나타내는 부울값으로, 기본값은 undefined입니다.
contentType : String | LoadVars.send() 메서드 또는 LoadVars.sendAndLoad()메서드를 호출할 때 서버에 전송되는 MINE유형(데이터의 기본 내용 형식)입니다. 기본값은 application/x-www-form-urlencoded입니다. |
---|---|
loaded : Boolean | load 또는 sendAndLoad작업이 완료 되었는지 여부를 나타내는 부울값으로, 기본값은 undefined입니다. |
생성자
LoadVars
LoadVars 객체를 만듭니다.
LoadVars | LoadVars 객체를 만듭니다. |
---|
메서드
|
|
|
|
|
|
|
|
이벤트
onData = function(src:String){}
서버에서 데이터를 완전히 다운로드했을 때 또는 서버에서 데이터를 다운로드 하는 동안 오류가 발생할 때 호출되는 이벤트입니다.
onHTTPStatus = function(httpStatus:Number){}
플래시 플레이어가 서버로부터 HTTP상태코드를 받을 때 호출되는 이벤트입니다.
onLoad = function(success:Boolean){}
LoadVars.load() 메서드 또는 LoadVars.sendAndLoad()메서드 작업이 종료되었을때 호출되는 이벤트입니다.
참고 사이트
http://www.miniusa.com/minimail/
http://www.mskgent.be/ - 박물관 내의 데이터들을 외부의 데이터에 저장하고 데이터를 가져와 화면에 보여주도록 하는 사이트
http://trend.paran.com/ - 사용자들이 실시간으로 선택한 정보를 표현
http://www.richardfoster.com/
http://www.idaehan.com/happywave/webzine/main_200608.jsp/
플래시와 서버간의 데이터 통신을 통해 구현할 수 있는 웹 사이트는 너무나도 무궁무진합니다. 플래시로 제작된 게시판, 이메일 보내기, 포트폴리오 리스트, 뉴스등 실시간으로 컨텐츠 내용이 변동되는 경우는 모두 다 서버와 데이터 통신을 통해 구현된다고 보면 됩니다. 이런경우 플래시는 일반적인 웹 페이지와 같이 데이터를 서버에 보내고 필요한 데이터를 받아서 보여주는 역할만 한다고 보면 됩니다.
데이터를 실제 저장하거나 저장된 데이터를 찾는 역할은 플래시 자체적으로는 불가능합니다. 이런 역할을 하려면 서버사이드 언어로 제작된 페이지가 필요합니다. 서버사이드 언어는 서버에서 실행되는 프로그램으로서 일반적으로 PHP, ASP, JSP등의 언어로 만들어진 페이지를 말합니다.
예제
fscommand("allowscale", false);
// Tween 클래스 사용
import mx.transitions.Tween;
import mx.transitions.easing.*;
// 초기 셋팅
System.useCodepage = true;
autoSetting_0_mc.gotoAndStop(2);
cover_mc._visible = false;
alert_mc._x = Stage.width;
Selection.setFocus("from_txt");
// 사용 변수
var dataURL:String = "http://www.aidone.co.kr/as2Study/loadvars/";
var autoSetting:String = "A";
var sendCheck:Boolean = false;
// 커버 버튼 영역 셋팅
cover_mc.onRollOver = function(){
this.useHandCursor = false;
}
// 첫번째 자동 셋팅 선택
autoSetting_0_mc.onRelease = function(){
this.gotoAndStop(2);
autoSetting_1_mc.gotoAndStop(1);
autoSetting = "A";
}//라디오버튼
// 두번째 자동 셋팅 선택
autoSetting_1_mc.onRelease = function(){
this.gotoAndStop(2);
autoSetting_0_mc.gotoAndStop(1);
autoSetting = "B";
}
// 자동 셋팅을 위해서 데이터를 로드합니다.
loadBtn_mc.onRelease = function(){
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean){
if(success){
load_txt.text = unescape(this.toString());
from_txt.text = this.from;
to_txt.text = this.to;
subject_txt.text = this.subject;
Selection.setFocus("message_txt");
}else{
alert("view","데이터를 불러오지 못했습니다.\n데이터 경로를 확인해주세요.");
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.autoSetting = autoSetting;
send_txt.text = send_lv.toString();
send_lv.sendAndLoad(dataURL+"autoSetting.php",result_lv,"POST");
}
// 이메일 보내기
sendBtn_mc.onRelease = function(){
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean){
if(success){
alert("view",this.message);
}else{
alert("view",this.message);
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.from = from_txt.text;
send_lv.to = to_txt.text;
send_lv.subject = subject_txt.text;
send_lv.message = message_txt.text;
if(from_txt.text != "" && to_txt.text != "" && subject_txt.text != "" && message_txt.text != "" ){
sendCheck = true;
send_lv.sendAndLoad(dataURL+"sendMail.php",result_lv,"POST");
}else{
alert("view","누락된 데이터가 있습니다.\n데이터를 확인해주세요.");
}
}
// 알림창 제어
function alert(viewCheck:String,message:String):Void{
if(viewCheck == "view"){
cover_mc._visible = true;
alert_mc.result_txt.text = message;
alert_mc._x = Stage.width;
new Tween(alert_mc,"_x",Strong.easeInOut,alert_mc._x,150,20,false);
}else{
if(sendCheck == true){
from_txt.text = to_txt.text = subject_txt.text = message_txt.text = send_txt.text = load_txt.text = "";
sendCheck = false;
Selection.setFocus("from_txt");
}
cover_mc._visible = false;
new Tween(alert_mc,"_x",Strong.easeInOut,alert_mc._x,Stage.width*-1,20,false);
}
}
// 알림창 닫기
alert_mc.okBtn_mc.onRelease = function(){
alert("hide",null);
}
XML 데이터를 송수신 할 수 있는 클래스 - XMLConnector
플래시에서 XML데이터를 보내거나 받을 때 사용한 클래스로, XML데이터를 반환하는 데이터 소스에 다른 구성요소를 바인딩하면 구성요소간에 통신 할 수 있습니다. 바인딩이란 한 구성요소의 속성을 다른 구성요소에 매핑하는 것을 말합니다. 구성요소 A의 값이 변경되면 구성요소 B는 구성요소 A값을 참조해 새로운 값으로 보이는 것입니다. 바인딩에 관해서는 실제 예제를 제작하면서 자세히 설명하도록 하겠습니다.
속성
XMLConnector.direction | 데이터를 전달했는지, 수신했는지 또는 데이터를 전달하고 수신했는지를 나타내는 속성입니다. |
---|---|
XMLConnector.ignoreWhite |
XML데이터의 불필요한 공백을 삭제시키는 부울(Boolean)값 속성으로, 기본은 false입니다. |
XMLConnector.multipleSimultaneousAllowed | 동시에 여러 XML데이터 호출이 발생할 수 있는지를 나타내는 부울(Boolean)값 속성으로, 기본은 false입니다. |
XMLConnector.params |
trigger()메서드 작업을 실행할 때 서버로 보내는 데이터 지정 속성입니다. |
XMLConnector.results |
trigger()메서드 작업의 결과로, 서버에서 수신한 데이터를 식별하는 속성입니다. |
XMLConnector.suppressInvalidCalls |
매개변수가 유효하지 않을 경우 호출을 취소할지 여부를 나타내는 부울(Boolean)값 속성으로, 속성값이 true이면 매개변수의 유효성 검사를 진행하고, 실패하면 trigger()메서드가 중단됩니다. |
XMLConnector.URL |
XML데이터를 수신, 송신할 때 사용하는 주소 속성입니다. |
메서드
XMLConnector.trigger() | XMLConnector구성요소를 통해 서버와 호출을 시작하는 메서드로, XML데이터 송 수신을 시작하는 것을 의미합니다. |
---|
이벤트
XMLConnector.result | 서버와 통신이 성공적으로 완료되었을 때 실행되는 이벤트입니다. |
---|---|
XMLConnector.send |
서버와 통신을 시작할때 실행되는 이벤트입니다. |
XMLConnector.status |
서버와 통신산태를 알릴 때 실행되는 이벤트입니다. |
참고 사이트
http://www.kobalt60.com/
플래시에서 데이터를 주고 받을 때 가장 안정적이고 효과적으로 사용할 수 있는 XML은 가공 및 확장성이 뛰어나기 때문에 플래시 데이터 연동에 가장 많이 사용하고 있습니다. 플래시는 사용자가 손쉽게 XML 데이터를 수신해서 사용할 수 있도록 XMLConnect 구성요소를 제공합니다. 아무리 복잡한 구조의 XML이라도 XMLConnector구성요소를 이용하면 손쉽게 XML데이터를 관리 할 수 있습니다.