정보보안공부

웹보안_16. XSS 공격 기법 본문

정보보안/웹보안

웹보안_16. XSS 공격 기법

Steady_sp 2018. 3. 14. 22:52

#XSS ( Cross Site Scripting )

 

클라이언트에 대한 취약점을 이용해 javascript와 HTML 언어를 사용한 불특정 다수에게 공격하는 기법이다. 공격자가 악의적인 코드를 사용해 사용자의 웹 브라우저에 심어놓으면 해당 사용자가 접속할 때 악성코드가 실행된다.

 

<특징>

-> 교차해서 스크립트를 실행한다.

-> 공격이 단순하면서도 강력하다.

 

-> OWASP TOP 10에서 한번도 빠진 적이 없는 공격기법이다.

-> javascript 공격중 하나이다.

 

1) stored XSS

-> 공격자는 게시글, 쪽지, 댓글등등 여러곳에 자바스크립트 코드를 입력하여 작성해 놓는다. 공격을 당하는 사람은 해당 웹 페이지를 열때, 자바스크립트 코드가 실행되어 공격을 당하게 된다.

 

## 게시글 작성시

 

-> 게시글을 작성할 때 위와같이 게시글 내용에 <script> </script>태그를 사용해 XSS공격을 할 수 있다. 해당글을 다른사람이 확인할 때 <script> </script>안의 코드는 실행이된다.

-> 게시글을 확인하려고 해당 글을 누르면 게시글을 확인하는 사람의 웹페이지에 <script> </script>안의 코드가 실행되는 것을 확인할 수 있다.

 

## 쪽지글 작성시

 

-> 마찬가지로 쪽지에서도 자바스크립트 공격이 이루어질 수 있다.

 

-> 쪽지를 확인하는 순간 자바스크립트 공격에 당하게된다.

 

## 댓글 작성시

 

-> 관리자의 권한으로 다른사람글에 댓글을 작성할 때 위와같이 입력하는 것도 자바스크립트 공격이 된다.

-> 댓글 달은 글을 보기위해 게시판을 누르면 어떤 사람이 누르던지 해당코드는 무조건 실행된다.

 

2) Reflected XSS

-> 실행시킨 웹 페이지에서 자바스크립트 코드가 발생한다.

-> GET방식 안에 코드를 입력한다.

-> shorten url ( 짧은 url ) 을 이용해서 get방식에 있는 script 부분을 숨길 수 있다.

-> GET방식 안에 <script>코드 작성시 웹페이지에서 자동으로 XSS공격을 방지하기 때문에 테스트하기위해 설정을 변경해놓는다.

 

-> 위와같이 설정을 변경하면 GET방식안에 <script>를 작성하면 공격이 이루어진다.

 

-> short url을 이용해 사용자가 해당코드를 보이지 않게 감출 수 있다. url은 감췄지만 웹브라우저에 XSS설정이 되어있다면 url을 감춰도 막아준다.

 

3) XSS 방어 코드

 

 

-> write_ok.php중 php코드안에 XSS공격을 막을 수 있는 코드를 추가한다.

 

-> XSS공격이 막아진 것을 확인할 수 있다. 하지만 XSS공격은 여러가지 우회기법이 존재한다. 예를 들어 script의 s를 대문자S로 하게되면 쉽게 공격에 당하게된다.

 

4) XSS공격 우회기법

 

 

-> 대문자S를 사용하게되어 XSS공격이 허용된 것을 확인할 수 있다.

 

5) 보안기법

-> 보안기법으로는 방화벽, IDS, IPS, UTM, 백신, .. 등등 여러가지가 있다.

-> 가장기본적인 보안패치 ( 업데이트 )가 중요하다는 것을 인지해야한다.

-> 또한 익스플로어, 크롬에서와 같이 제 3자가 보안을 해주는 서드파티보안이 있다.

 

Comments