cgy12306

XSS 본문

해킹맛보기

XSS

cgy12306 2019. 7. 6. 18:27

실습 환경 : bitnami WAMP

XSS(크로스 사이트 스크립팅) : 웹 페이지에 스크립트를 삽입할 수 있는 취약점.

 

웹 서버에 요청하는 방식 2가지

GET 방식 : 주소창에 ?뒤에 값을 넘겨주는 방식

POST 방식 : ?뒤의 값을 숨겨서 전달하는 방식

 

예를 들어 친구에게 냉장고를 선물한다고 할 때 직접 전달하는 방식이 GET 방식, 택배로 포장해서 보내는 것이 POST 방식입니다.

 

Reflexed XSS

< msg 파라미터를 출력하는 코드>

 

 

 

코드의 내용은 xss.php에 msg를 GET으로 넘겨주면 출력해 줍니다.

 

 

http://localhost/xss.php?msg=<script>alert(/XSS/)</script>를 입력해주면 스크립트가 실행되는 것을 볼 수 있습니다.

 

Stored XSS

 

- 게시판의 악성 스크립트가 삽입된 형태로 이루어지는 XSS 공격

- <script></script>와 같은 태그 사용이 가능하다면 XSS 혹은 CSRF 공격의 취약점이 존재할 수 있다.

 

쿠키 공격

 

쿠키 : 하이퍼 텍스트 기록서의 일종으로서 인터넷 사용자가 어떠한 웹 사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버로부터 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. 많은 서버 및 웹 사이트들이 브라우저의 신속성을 높이기 위해 이용하고 있다.

 

 

우선 XSS 취약점이 존재하는지 확인.

 

 

alert 창이 뜨는 걸 확인 함으로써, XSS 취약점의 존재를 확인

 

쿠키를 가져오는 스크립트문을 게시

 

document.cookie 안에 담긴 쿠키를 xss.php 파일을 이용해 log.txt에 담아줌

 

 

 

log.txt에 GET으로 얻은 쿠키를 저장

 

 

<alert를 통해 쿠키가 노출 됨.>

 

 

 

 

<log.txt에 담긴 쿠키 정보>

 

 

 

방어 기법

 

XSS의 방어 기법으로는 태그를 열고 닫는 "<"와 ">"를 엔티티 문자인 "&al;", "&gt;"로 치환해 태그를 막는 방법이 있다. 하지만 오늘날의 게시판은 대부분 에디터 기능의 사용으로 "<", ">"와 같은 꺾쇠를 허용해 매우 복잡한 필터링 방식을 거쳐야 한다.

많은 공격 포인트가 존재하는 탓에 해당 취약점에 대한 완벽한 방어 기법은 존재하지 않는다.

 

'해킹맛보기' 카테고리의 다른 글

XSS 부족한 부분 정리 + SQL 인젝션  (0) 2019.07.06
Bitnami WAMP 설치 및 설정  (0) 2019.07.06
Comments