[9 / 10 WEEK] XSS

2024. 6. 25. 23:33정보보안 및 해킹/Normaltic's 취업반 강의

XSS

Cross Site Scripting

클라이언트 측 스크립트(이용자 측 스크립트)를 삽입하는 공격

피해자는 이용자, 즉 클라이언트가 됨

 

PROCESS

1. 작성한 데이터가 화면에 출력되는지 확인

작성한 데이터가 화면에 출력되지 않으면 해당 취약점은 소용 없다

 

2. 특수문자 체크 < ' " >

공격용 스크립트에 사용할 특수문자가 필터링 되고있는지 확인한다

 

3. 스크립트 삽입

script, alert(1) 등 필터링 되고있는지 확인하거나 쿠키를 가져오는 등 여러가지 방법으로 스크립트를 삽입한다

 

종류

 

Stored XSS

사용 조건

공격자(클라이언트)가 삽입하는 스크립트가 서버에 저장되는 곳

 

필수 요소

공격자 (클라이언트) 가 삽입하는 스크립트가 서버에 저장되고, 동시에 화면에 혹은 Burp Suite에 해당 데이터가 출력되어야 한다

 

특징

서버에 저장되기 때문에 흔적이 남음

이용하는 이용자 모두가 해당 공격 코드를 읽게 될 수 있기 때문에 광범위한 공격이 가능

 

Reflected XSS

사용 조건

공격자(클라이언트)가 입력하는 데이터가 그대로 출력되는 곳

 

필수 요소

공격자 (클라이언트) 가 입력하는 데이터가 Burp Suite의  해당 Response에 그대로 출력되어야 함

GET 메서드 여야 함 -> 해당 링크를 사용하여 이용자에게 링크를 뿌려 사용하는 공격이기 때문

 

특징

링크를 이용한 공격이기 때문에 흔적이 남지 않음

특정 인물에게 링크를 보내므로 타겟팅을 한 공격

 

DOM Based XSS

사용 조건

공격자(클라이언트)가 입력하는 데이터가 그대로 출력되거나, 혹은 안되거나 Response에서 재조립되는 곳

 

필수 요소

공격자 (클라이언트) 가 입력하는 데이터가 Response에서 document.srite나 innerHTML등을 통해 재조립된다

GET 메서드 여야 함 -> 해당 링크를 사용하여 이용자에게 링크를 뿌려 사용하는 공격이기 때문

 

특징

입력한 데이터를 그대로 반사할 수 있기 때문에 Reflected XSS 공격처럼 보일 수 있음

 

POC : Proof Of Concept

어느 곳에 취약점이 존재하는지 보여주는 용도로 사용

보통 alert(1), prompt(1), console.log('xss') 등 사용