보안유망주의 t스to리
XSS(Cross-Site-Scripting)취약점 본문
일단 시작하기에 앞서 왜 CSS인데
왜 XSS라 부르는가?
라고 생각 할 수 있다.
일단 답을 주자면
CSS라는 약어가 사용되고 있기 때문에 X를 앞에 붙여 XSS라 불리게 되었다.(먼저 태어난놈이 임자)
XSS란?
공격자(해커)가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 말한다.
XSS의 종류
일단 XSS는 주로 3가지로 나뉘는 데
1. Stored XSS (Persistent XSS)
- 공격자가 악성 스크립트를 서버에 저장하고, 이를 다른 사용자가 서버에서 불러와 실행하는 방식이다.(클릭이나 페이지 들어가는 거로도 실행되게 할수있음.)
- 공격 방식은 공격자(해커)가 사용자 프로필, 블로그 게시물, 댓글 등의 입력 필드에 악성 코드를 삽입하고 서버에 저장된 이 스크립트는 해당 페이지를 방문하는 사용자들에게 실행되는 방식으로 해킹된다.
- 예시:악성사용자(해커)가 게시판에 악성 JavaScript 코드를 작성하고, 그 페이지를 방문하는 모든 사용자가 해당 스크립트의 영향(해킹)을 받는다.
2. Reflected XSS (Non-Persistent XSS)
- 공격자(해커)가 사용자의 요청에 악성 스크립트를 포함하고, 그 스크립트가 즉시 응답에 반영되어 실행되는 방식이다.
- 공격자(해커)가 악성 스크립트가 포함된 URL을 생성하고 이를 피해자에게 전달하는데 피해자가 URL을 클릭하면, 악성 스크립트가 서버에 요청되고 서버가 즉시 해당 스크립트를 반환해 브라우저에서 실행된다.
- 해킹 방식--> 공격자(해커)가 검색 쿼리에 악성 코드를 삽입한 URL을 생성하고, 사용자가 이 URL을 클릭하면 페이지에서 스크립트가 실행되는 방식이다.
3. DOM-based XSS
- 서버가 아닌 클라이언트 측에서 발생하는 XSS로, JavaScript가 동적으로 웹 페이지의 Document Object Model(DOM)을 조작하면서 발생한다.
- 클라이언트 측 스크립트가 입력된 데이터를 처리하는 과정에서 검증되지 않은 데이터를 직접 DOM에 삽입해 공격이 발생합니다. 서버는 스크립트를 반환하지 않지만, 클라이언트 측 코드에서 취약점이 발생할 수 있다..
- 해킹 방식-->사용자가 특정 URL을 방문하면, 브라우저 내에서 JavaScript가 DOM을 조작해 악성 스크립트가 실행된다.
기타 XSS
- Blind XSS: 공격코드가 관리자 쪽에서 발생할때 Blind XSS를 의심할수 있다 얘는 공격자도 스크립트가 어떻게 실행되는지 즉시 알 수 없지만, 대상 시스템이 특정 조건(관리자가 클릭이라던지, 확인한다던지 등등)에서 악성 스크립트를 실행하게 되는 경우가 있다
'해킹지식' 카테고리의 다른 글
블록 체인 기술이란? (4) | 2024.11.04 |
---|