-
[webhacking] 1. XSS ( Cross Site Scripting ) / feat. SOP해킹/webhacking 2023. 3. 5. 16:02
XSS 이란?
클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 오리진 권한으로 악성 스크립트를 삽입하여 이용자가 그 사이트를 방문했을 때, 해당 악성 스크립트가 실행되어 세션 정보 등을 탈취할 수 있습니다.
SOP 정책으로 인해 서로 다른 오리진에서 정보를 읽는 것은 힘들어졌지만, 우회 기법도 같이 등장하면서 XSS 공격은 지속되고 있습니다.
SOP ( Same Origin Policy ) 동일 출처 정책
쿠키에는 인증 정보와 같은 민감한 정보가 같이 저장되어 있습니다. 만약 이용자가 sns에 로그인 된 채로 악의적인 사이트에 접속했을 때,
그 사이트에서 sns로 로그인 정보를 요청하게 되면 어떻게 될까요?
해당 sns에서는 응답으로 로그인 정보를 사이트로 보내줄 것입니다. 이렇게 되면 공격자는 sns 로그인 뿐만 아니라, 글 작성 및 삭제 등 마음대로 하는 것이 가능할 것입니다.
이러한 문제를 막기 위해 SOP라는 보안 정책이 등장하였습니다.
SOP(Same Origin Policy)는 동일한 origin에서만 정보를 읽을 수 있게 하는 정책입니다.
- origin : 프로토콜, 포트, 호스트로 이루어진 URL 정보입니다. URL의 구성요소 중 path를 제외하고 동일하다면 same origin, 다르다면 cross origin 이라고 합니다.
하지만 다음 경우를 생각해봅시다.
- https://cafe.white-hack.com
- https://mail.white-hack.com
- https://blog.white-hack.com
사용자가 카페, 메일, 블로그를 운영하고 있습니다. 블로그에 받은 메일 수를 출력하고 싶을 때, 서로 다른 origin에서 해당 정보를 요청해야 합니다. 이러한 경우에서는 cross-origin환경에서 SOP에 적용받지 않고 리소스를 공유할 수 있어야 합니다.
이에 따라 등장한 것이 CORS(cross origin resource sharing)입니다.
CORS
Access-Control-Allow-Origin에 믿을 수 있는 출처를 가지고 있고, 요청이 온 origin과 비교하여 요청을 차단할 지 응답할 지 결정합니다. 이를 통해 다른 origin이더라도 리소스를 공유할 수 있게 됩니다.
XSS 공격 종류
- Stored XSS
- Reflected XSS
- DOM-based XSS
- Universal XSS
이 중 Stored XSS, Reflected XSS에 대해 알아보도록 하겠습니다.
Stored XSS
서버의 데이터베이스나 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 공격입니다.
공격자는 보통 게시판 글이나 댓글에 악성 스크립트를 포함해서 작성하게 됩니다.
이용자가 해당 게시판 글을 읽게 되면 스크립트가 실행되고, 불특정 다수에게 노출되는 게시판 글 특성상 높은 파급력을 지니고 있습니다.
Reflected XSS
서버가 악성 스크립트를 담긴 요청을 출력할 때 발생합니다. (ex : 게시물을 검색할 때 악성 스크립트가 담긴 검색어로 조회)
URL과 같은 이용자의 요청에 의해 발생하므로, 공격자는 이용자가 악성 스크립트가 포함된 링크에 접속하도록 유도해야 합니다.
따라서 단독적으로 사용되지 않고, Click Jacking 또는 Open Redirecting 등 다른 취약점과 연계하여 사용합니다.
XSS 실습 : wargame 문제풀이
https://white-hack.tistory.com/entry/webhacking-XSS-1-XSS-2-%EB%AC%B8%EC%A0%9C-%ED%92%80%EC%9D%B4
[webhacking] XSS-1 / XSS-2 문제 풀이
XSS (Cross Side Scripting)에 관한 문제 2개를 가져왔습니다. 관련 개념 설명은 아래 포스티을 참고해 주시기 바랍니다. https://white-hack.tistory.com/entry/webhacking-1-XSS-Cross-Site-Scripting-feat-SOP [webhacking] 1. XSS (
white-hack.tistory.com
'해킹 > webhacking' 카테고리의 다른 글
[webhacking] 2. CSRF ( Cross Site Request Forgery ) (0) 2023.04.10