블로그 이미지
신세계 SSG.COM / IT개발 1팀 / 상품, 제휴 / 김지영 FreeEnd

카테고리

전체 (82)
끄적끄적 (14)
News (1)
Movie (11)
Security (1)
Design Patterns (2)
Operating System (4)
Database (8)
Framework (4)
Solution (7)
Language (1)
Web (4)
Lib (3)
TEST_Tools (4)
ETC... (7)
Software Factory (0)
Total256,936
Today13
Yesterday8


달력

« » 2021.8
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

글 보관함

'Security'에 해당되는 글 1건

  1. 2010.09.11 Cross Site Scripting (XSS) 취약점 개선 (2)

 XSS란 Cross Site Scripting 의 약자로 웹의 보안성 취약 중 하나이다

 악의적 의도로 제작된 스크립트를 URL 파라메터 등에 삽입해 요청을 웹서버로 전송한다. 이 요청은 웹서버에 의해 해석되 웹 페이지에 출력하게 되고 사용자는 자신도 모르는 사이에 변조된 사이트에서 자신의 정보를 유출 당한 수도 있고 피싱 사이트로 페이지를 전환 당할 수도 있다. XSS가 위협적인 이유는 간단히 script, html, VBScript, AcriveX 등을 삽입 할 수 있고, 이 변조는 간단히 URL에 실리는 것만으로도 페이지가 편하기 때문에 링크등에 보이지 않게 사용자에게 실행되여 사용자는 정보유출등의 피해를 자신도 모르는 사이에 당할 수도 있다.

 XSS는 크게 Reflected XSS, Stored XSS로 나뉜다.


 Reflected XSS (반사된 XSS) 는  위에 설명한대로 URL, 쿠키변조, 헤더등에 실어 보내 악의적 스크립트를 실행 시키에 하는 방법이다.
 
 URL 내 스크립트 삽입은 는 간단히 URL 링크를 클릭하는 것으로 웹 페이지에 스크립트를 삽입 할 수 있고, 링크이기 떄문에 사용자도 알지 못해 많이 사용 되는 방식이다.

 아래 그림은 실제 운영중인 국내 모 반값 할인 사이트에  XSS를 시도해 캡춰를 한 모습이다. 이렇게 간단한 스크립트 삽입만으로도 아래와 같이 페이지를 변조, 팝업을 띄울수 있다.
 


이 이외에도 쿠키 변조, 헤더 변경 등 이 있지만 쿠키 변조나 헤더 변경등 의 방법은 페이지에 접근하는 사용자가 직접 변경 해야 하기 때문에 타인에게 피해를 입히지는 않는다.

 하지만 이러한 방법들로 페이지에 악의적인 스크립트를 삽입한다면 보안성에 취약한 중소 업체, 개인 사이트들은 스크립트의 실행만으로 서버 로컬 서비스에 접근, 서버상의 쉘스크립트 실행등으로 관리자 권한을 내줄수도 있으며 극단적으로는 서버 운영을 중단 시키는 일도 또한 가능하므로 주의가 필요하다.


Stored XSS (저장된 XSS) 는 게시판 등에 글을 올릴때 script를 포함해 올리는 방식이다. Reflected XSS가 사용자의 클릭에 의한 일회성이라면 Stored XSS 는 게시물에 스크립트를 포함하므로 같은 페이지에 접근하는 수 많은 사람들에게 같은 피해를 입힐 수 있다.



 이러한 XSS취약점의 대응책은 의외로 간단하다. request에서 스크립트 태그 패턴을 삭제하거나, 숫자나 특수문자등 만 파라메터로 받는 변수는 해당 문자열을 검사해 다른 문자는 삭제한다. 또 입력받는 파라메터의 문자열을 제한하는 방법이 있다. 지영옹.
 


아. 인터파크는 개선했어요. 누가? 내가. 지영옹.
Posted by 지영옹 FreeEnd

댓글을 달아 주세요

  1. 2012.07.08 13:45 0000  댓글주소  수정/삭제  댓글쓰기

    xss만으로 어떻게 서버에까지 접근할수있나요?

    • 2012.07.26 12:18 신고 지영옹 FreeEnd  댓글주소  수정/삭제

      못해요. 개발자 뉴비였을적 쓴거라 개발새발 아는척 하면서 쓰느라 그렇게 썼는데.. ㅠㅠ javasciprt는 브라우저단에서 구동되는 스크립트 언어이기 때문에 스크립트 만으로는 서버에 접근 할 수 없고. 대신에 서버에 리퀘스트를 보낼때 스크립트에서 validation 체크를 무력화해 의도하지 않은 리퀘스트를 날려 서버에 악의적인 리퀘스트를 보낼 여지는 있습니다. 참고로 특수문자. stored xss 등을 이용이 가능하다는 거죠. 지적 감사합니다.