컴퓨터공학 전공생의 보안 도전기✌

[Security FACT] 웹해킹 Week 4 본문

Security/Web hacking

[Security FACT] 웹해킹 Week 4

A7uly 2022. 4. 29. 17:13

웹해킹 4주차.pptx
3.78MB

Origin

<scheme>,<hostname>,<port>로 구성.

도메인과 비슷하지만, origin은 프로토콜과 포트번호(optional)가 포함된다.

즉 두 URL이 같은 origin을 가지고 있다는 이야기는 이 3(2)가지가 동일한 경우를 말한다. 두 URL의 origin이 다른 경우를 Cross Origin이라고 한다.

SOP(Same-Origin Policy)

한 origin에서 로드된 문서 또는 스크립트가 다른 origin의 리소스와 상호작용할 수 있는 방법을 제한하는 중요한 보안 매커니즘.

즉 동일한 origin을 가질 때만 데이터를 읽어올 수 있게 하는 정책.

 

CORS(Cross Origin Resource Sharing)

cross origin의 경우에도 데이터를 불러와야 하는 경우가 생긴다. 그럴 때 HTTP header를 이용하여 다른 origin의 데이터를 사용할 수 있도록 하는 매커니즘.

모든 API 호출을 허용하는 단순한 방식(Simple Request)도 있고, Pre-flight를 이용해 각 URL당 통제를 하는 방식(Preflight Request)도 있다.

서버로 HTTP OPTIONS라는 요청을 보내면 해당 URL에 접근이 가능한 Origin URL과 HTTP method 정보들을 반환해준다. 이렇게 실제 요청을 보내도 안전한지 확인하기 위해 test request를 보내보는 과정을 preflight이라고 한다. 이 정보를 바탕으로 허용하는 조건이라면 실제로 요청을 보낸다.

XSS

공격자가 게시판이나 웹 메일 등에 JS(Java Script)와 같은 코드를 삽입하여 개발자가 고려하지 않은 기능이 작동하게 하는 공격.

조건

  1. 악성 스트립트가 삽입될 수 있을 만큼 낮은 검증 수준을 가진 웹 사이트
  2. 정보가 웹 사이트에서 바로 출력될 수 있을 만큼 낮은 검증 수준을 가진 웹 사이트 

종류

Reflected XSS

XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS

ex) 게시판 서비스에서 작성된 게시물을 조회하기 위한 검색창에서 스크립트를 포함해 검색하는 방식

사용자가 직접 이 스크립트가 포함된 문자열을 실행시킬 수 있도록 유도해야 함

Stored XSS

XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS

게시글 또는 댓글에 악성 script를 삽입하는 방법이 주로 사용.

DOM Based XSS

XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS

Universal XSS

클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점으로 SOP 정책을 우회하는 XSS

방지법

  • <script> 문자 필터링
  • php 함수 중 htmlentities(모든 특수문자를 HTML Entity로 변경)라는 함수 사용

 

Reference

https://developer.mozilla.org/ko/

 

MDN Web Docs

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

developer.mozilla.org

 

'Security > Web hacking' 카테고리의 다른 글

[Security FACT] 웹해킹 Week 6  (0) 2022.05.13
[Security FACT] 웹해킹 Week 5  (0) 2022.05.06
[Security FACT] 웹해킹 Week 3  (0) 2022.04.08
[Security FACT] 웹해킹 Week 2  (0) 2022.04.01
[Security FACT] 웹해킹 Week 1 OT  (0) 2022.04.01