Cross Site Scripting(XSS)무작정 해킹 공부/Web Hacking2025. 2. 3. 14:51
Table of Contents
XSS?
- Client에 대한 취약점을 이용하여 javascript, html 등을 이용하는 불특정 다수를 공격할 수 있다.
- 공격자가 웹사이트에 악성 클라이언트 사이드 코드를 삽입할 수 있도록 하는 보안 취약점 공격.
- 이 악성코드는 피해자에 의해 실행되며 공격자가 접근 제어를 우회하고 사용자로 위장할 수 있게 만들어준다.
- 공격자가 악의적인 스크립트를 사용자의 웹 브라우저에 숨겨두게 되면, 해당 사용자가 접속할 때 악성 코드가 실행되는데 이 때 사용자의 쿠키 및 기타 개인 정보들이 해커에게 전송될 수 있다.
- 웹 앱이 충분한 유효성 검사나 인코딩을 사용하지 않으면 XSS 공격이 성공하게 된다.
Stored XSS?
- 공격자는 게시글, 댓글, 쪽지 등 여러 곳에 js 코드를 입력해서 작성해둔다.
- 공격을 당하는 사람은 해당 웹 페이지를 열 때 숨겨진 js 코드가 실행되어 공격받는다.
⇒ 게시글, 댓글창 여러 곳을 실행했을 때 숨겨진 스크립트가 실행되는 것
Reflected XSS?
- 실행한 웹 페이지에서 js 코드가 발생하고, get 방식으로 url에 코드를 입력한다.
- url이 너무 길면 의심되니 짧은 url로 script 부분이나 파라미터를 숨길 수 있다.
- url 안에 스크립트 코드 작성 시 웹 브라우저에서 자동으로 xss 공격을 방지한다.
ex) https://www.kcwblog.com?query=<script>window.open("https://hackeverything.com")</script>
이런 url을 문자나 메일로 뿌려서 쿠키나 사용자 정보를 탈취하도록 만든 피싱 사이트로 연결되게 만들었다면 사용자 는 자신의 정보가 유출될 수밖에 없다.
⇒ 검색 시도 시 url에 해당 검색어가 그대로 노출되는 것이 reflected xss임
우회 필터링
- 대소문자 이용
- <ScrIPT>alert(”1”)</scRIpt>
- HTML 태그 속성 이용
- 깨진 이미지를 삽입해 마우스나 특정 이미지를 지날 경우 경고 메시지 출력
- <img src=”#” onmouseover=”alert(1);”>
- 문자열 분리를 이용한 우회 방법
- 특정 문자열 전체를 필터링 해버렸기 때문에 js의 ‘+’와 ‘eval’ 함수를 통해 우회
=> 치환되지 않고 정상적으로 작동됨 - var inputString=”aler”+”t(al”+”ert”+”(1));”; eval(inputString);
- 특정 문자열 전체를 필터링 해버렸기 때문에 js의 ‘+’와 ‘eval’ 함수를 통해 우회
- 특정 문자열의 연속된 입력을 거부할 경우
- Null Byte Injection을 사용.
- 문장의 종료를 나타내는 ‘NULL’ 값을 문자열 사이사이에 삽입하게 된다.
- URL로 인코딩된 null byte 문자(%00)을 이용해 악의적인 공격자에 의해 의도하지 않은 동작을 시키는 것.
- 문자열 저장 시 null 문자를 삽입해 null까지 출력하고 끝난 것으로 생각되는 것을 이용한 공격
Javascript에서 페이지 이동
- location.href
- href는 객체에 속해 있는 설정으로 현재 접속 중인 페이지의 정보를 갖고 있다.
- 그리고 그 값을 변경할 수 있는 property이기에 다른 페이지로 이동하는 데도 사용된다.
- location.href로 페이지 이동 방법 (naver로 이동)
location.href = “www.naver.com”;
- location.replace()
- 메서드(함수)로 작동된다.
- replace는 현재 페이지를 새로운 페이지로 덮어 쓰기에 이전 페이지로 이동이 불가능하다.
img src
- url, onerror는 url에서 이미지를 못 찾으면 에러를 띄우는데, 이 때 스크립트를 삽입하면 xss 공격 가능
- <img src="" onerror="location.href='/memo?memo='+document.cookie">
<aside> 💡
- Cross Site Scripting (XSS): 클라이언트 사이드 취약점, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행하는 취약점.
- Stored XSS: 악성 스크립트가 서버 내에 존재, 이용자가 저장된 악성 스크립트를 조회할 때 발생
- Reflected XSS: 악성 스크립트가 이용자 요청 내에 존재, 이용자가 악성 스크립트가 포함된 요청을 보낸 후 응답을 출력할 때 발생 </aside>
'무작정 해킹 공부 > Web Hacking' 카테고리의 다른 글
Same Origin Policy(SOP) (1) | 2025.02.03 |
---|---|
CURL 사용법 (1) | 2025.02.02 |
Same Origin Policy (0) | 2022.08.20 |
Cookie & Session (2) | 2022.07.25 |
웹 브라우저편 (0) | 2022.07.22 |
@startonebyone :: 계속 로딩중
로딩중.....(버퍼링)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!