XSS ( Cross Site Scripting )
1995년에 자바 스크립트가 도입된후 2000년도에 최초의 공격이 발견되었다. 그후 발전하여 2005년에 악성코드의 형태로 발견되었다.
스크립트가 실행가능한 모든 곳이 취약하다.
OWASP( 비영리 단체 ) : 취약점 분석 순위를 알려주는 사이트에서 최근 2017년 TOP 10 에도 오른 공격방법이다.
뿐만아니라, 2005년부터 꾸준히 이어지는 공격 방법이다.
a). stored XSS
- 악의적인 스크립트를 웹 사이트에 저장하는 방법이다.
- 저장된 스크립트를 다운로드 받은 사용자의 웹 브라우저에서 실행시켜 공격하는 방법이다.
저번에 만든 제로보드에서 그룹을 하나 만들어준다.
그룹이 추가되면 webboard 에서 게시판을 하나 추가시켜준다.
그럼 위와같은 형태로 나오는대 저기서 view를 누르면 게시판에 들어갈수 있다.
게시판형태는 위와 같다.
그럼 글을 작성해보자 위와같이 스크립트를 이용해서 경고창을 띄어보도록 해보자.
이런식으로 어떤 사용자든 게시판의 글을 누르게되면 위와같은 경고창이뜬다.
즉 이말은 어떤 사용자든 글을 읽게되면 취약점에 노출이 된다는 소리!
게시글을 확인해보면 위와같이 아무 글이 안나온다.
b). reflected XSS
반사되는 형태의 공격으로 자기자신에게 공격이 들어오는 방식이다. 현재 웹브라우저는 기본적으로 XSS를 차단하고 있기 때문에 확인하기 힘들다.
하지만 이방식에 대해서는 과연 공격이 가능한가에 대해서 말이 많지만, 최근 공격형태로 많이 나타나고있다. 공격방식은 링크를 이용해서
상대방이 링크를 눌르면 공격이 되는 형태로 이용되고있다.
차단 ( 보안 )
1). 스크립트의 실행 차단
- 자바스크립트를 실행 할 수 없다.... // 손해가 심하다.
- Qos // 서비스의 질이 떨어진다.
2). 서드파티에서 보안
- 웹 브라우저 자체에서 보안 ( 제 3자가 보안 )
- 방화벽, 관제, .....
- 완벽한 차단이 불가능.
- 유지보수 비용이 많이 들어감.
3). 시큐어 코딩 * (미래)
- 개발단계에서 부터 보안성을 고려한 개발 목표
- 출시될 때 취약한 부분 없이 출시
- 유지보수 비용 많은 절감, ....
기획 -> 설계 - > 구현 - > 배포 - > 유지보수 (서드파트)
취약점 ------------------------------------------------>(계속존재)
결과적으로 유지보수에서 패치를 통해 보안을 한다. (우리나라는 현재 구현단계 )
외국은 기획 지점부터 취약점을 보완한다 ( *시큐어코딩* )
* XSS 차단
- <script> 입력값을 차단하는 방법이있다.
위와같이 게시글 쓰는 항목에서 소스보기를 통해 게시글 내용이 어디로 가는지 알아보자.
분석결과 위와같이 write_ok.php 로 가는것을 알수있다.
zboard 디렉토리 확인결과 위와같은 파일을 찾을수 있다.
.
그럼 편집을통해서 <script>와 같은 단어가 나오는지 preg_match를 하여
script라는 단어가 나오면 찾았다는 경고문구를 보여주도록 하자.
그럼 위와같이 script 문구를 사용했을때
위와같은 결과를 나오게함으로써 막을수있다.
하지만 완벽하게 막히는것이 아니다. 이유는 만약 <script>를 <SCRIPT>로 바꿔서 사용하면 사용이가능
즉 모든 문구를 막아야한다.
'WEB_Security' 카테고리의 다른 글
14. CSRF (0) | 2017.05.30 |
---|---|
13. GET,POST 취약점 (0) | 2017.05.30 |
11. 제로보드 실습환경 구축 (0) | 2017.05.26 |
10. 쿠키 & 세션 (0) | 2017.05.24 |
09. 인증 (로그인 예제 , PHP) (0) | 2017.05.22 |
댓글