![]/images/computer-science/network/http/xss.png)
XSS (Cross-Site Scripting)
공격자가 보안이 취약한 웹 사이트에 악성 스크립트를 삽입하는 공격 기법
- XSS 를 통해 C&C (좀비 PC에 명령을 내리거나 악성 코드를 제어하는 서버) 로 리다이렉하거나
- 사용자의 쿠키를 탈취해 Session 하이재킹 공격을 할 수 있다.
Persistent XSS
공격자가 심어놓은 특정 스크립트가 서버에 저장돼 지속적으로 서비스를 제공하는 정상 페이지에서 공격자에게 스크립트가 노출되는 기법
Relected XSS
웹 어플리케이션의 파라미터를 사용할 때 발생하는 취약점을 이용한 공격 기법
- 쿼리 파라미터로 특정 스크립트를 보냈을 때 서버가 필터링을 거치지 않고 파라미터로 포함된 스크립트를 응답 페이지에 담아 전송할 때 문제가 발생
XSS 의 위험성
- 쿠키 정보 및 Session ID 획득
- 시스템 관리자 권한 획득
- 악성코드 다운로드
- 거짓 페이지 노출
XSS 방지법
- HTML 5 에서는 innerHTML 을 통해 주입한 스크립트는 실행되지 않는다.
- Cookie 에 HttpOnly 옵션을 활성화 한다.
- document.cookie 를 이용해 Cookie 정보를 가져오는 것을 차단한다.
- 단 localStorage 에 저장된 정보에 대한 접근은 막을 수 없다.
- Script 문자 필터링
- htmlentity 사용
- 특수문자를 HTML Entity 로 변환한다.
- < : < 로 변환
- > : > 로 변환