보안공부/웹 해킹

OWASP juice shop - DOM XSS

hkhkhkh 2024. 9. 24. 00:28
반응형

 

DOM은 웹 페이지의 설계도이다. DOM은 HTML 각 요소를 트리 형태로 만들고, 우리가 어떤 행위를 하면 거기에 맞춰 DOM이 컴퓨터가 알아들을 수 있게 해석해준다.

 

DOM XSS는 이런 웹 페이지의 설계도에 악성 스크립트를 삽입시켜 javascript 코드가 해석되게 한다.

 

DOM XSS는 클라이언트 쪽에서 발생하며 DOM을 조작해 javascript가 실행되게 한다.

 

 

입력 필드에 악성 스크립트를 삽입해서 확인한 결과 검색창에서 XSS가 발생했다.

 

<iframe src=”javascript:alert(`xss`)”> 악성 스크립트를 검색창에 입력하면 DOM XSS가 발생한다. (서버와 상관없이 브라우저 내에서 발생한다.)

 

 

URL에서는 q파라미터에 악성 스크립트가 포함된다. 만약 해커가 악성 스크립트가 포함된 URL을 메일이나 메시지로 보내고 사용자가 클릭하면 세션 탈취, 쿠키 탈취, 피싱 사이트 이동 등 다양한 공격을 시도할 수 있다.








쿠키 탈취 시나리오

<공격자 계정>

 

<희생자 계정>

 

공격자는 희생자의 요청을 받을 수 있는 링크를 하나 생성한다.

 

 


 

공격자는 해당 악성 스크립트가 포함된 전체 URL 주소를 사용자에게 클릭하도록 유도한다.

 



공격자는 이런식으로 사용자가 URL을 클릭하도록 유도한다.

만약 사용자가 juice shop 사이트에 로그인이 된 상태이면 사용자의 쿠키가 공격자의 서버로 넘어간다.

 

 

희생자는 해당 URL을 클릭했고, 사용자의 cookie가 공격자 서버로 넘어갔다.

사용자의 세션과 관련된 쿠키는 token이고, 해당 값을 공격자의 쿠키와 변경해주니 희생자의 계정으로 로그인이된다.

 

<공격자 계정에서 희생자 계정으로 변경된 결과>

 

 

만약 희생자 계정이 페이지 관리자 계정이면 더 많은 공격을 수행할 수 있어 조심해야한다.

 

반응형