cgy12306
XSS 본문
실습 환경 : bitnami WAMP
XSS(크로스 사이트 스크립팅) : 웹 페이지에 스크립트를 삽입할 수 있는 취약점.
웹 서버에 요청하는 방식 2가지
GET 방식 : 주소창에 ?뒤에 값을 넘겨주는 방식
POST 방식 : ?뒤의 값을 숨겨서 전달하는 방식
예를 들어 친구에게 냉장고를 선물한다고 할 때 직접 전달하는 방식이 GET 방식, 택배로 포장해서 보내는 것이 POST 방식입니다.
Reflexed XSS

코드의 내용은 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으로 얻은 쿠키를 저장



방어 기법
XSS의 방어 기법으로는 태그를 열고 닫는 "<"와 ">"를 엔티티 문자인 "&al;", ">"로 치환해 태그를 막는 방법이 있다. 하지만 오늘날의 게시판은 대부분 에디터 기능의 사용으로 "<", ">"와 같은 꺾쇠를 허용해 매우 복잡한 필터링 방식을 거쳐야 한다.
많은 공격 포인트가 존재하는 탓에 해당 취약점에 대한 완벽한 방어 기법은 존재하지 않는다.
'해킹맛보기' 카테고리의 다른 글
XSS 부족한 부분 정리 + SQL 인젝션 (0) | 2019.07.06 |
---|---|
Bitnami WAMP 설치 및 설정 (0) | 2019.07.06 |