Stored XSS
DATE : 2023/12/21
앞선 POST XSS : Cross Site Scripting에서 XSS가 무엇인지,
어떤 조건을 확인해봐야 하는 지 알아보았으니
이번엔 XSS 공격을 어떻게 수행할 수 있는 지, 그 방법에 대해 알아볼 것이다.
HOW?
XSS는 (1)데이터를 서버에 저장하고 있다가 (2)사용자의 응답 속에 출력 됨으로써
이루어지는 공격이라 정리했다.
그렇다면 어찌 됐든 스크립트를 삽입할 줄 알아야 그 다음 무슨 일이 벌어지든 할 것이다.
그렇기 때문에 이번 POST에서는 스크립트를 삽입하는 방법, 그 유형에 대해 알아보려고 한다.
Stored XSS
XSS 공격을 수행하기 위한 스크립트 삽입, 첫 번째는 Stored XSS이다.
Stored라는 단어 그대로 페이지에 접속하는 이용자에게 스크립트가 전달되도록
스크립트를 서버에 저장해두는 방식이다.
Stored XSS를 수행하기 위해서는 당연히, 데이터를 저장하는 포인트에서 스크립트를 삽입해야 하는데
그렇다면 이런 의문이 들 수 있다.
"데이터를 저장하는 곳이라면 어디든 Stored XSS를 수행할 수 있는 건가?"
정답은 NO!
데이터를 저장해두는 것에 더불어 그 데이터가 출력 되어야 한다. 이때 "데이터가 출력"된다는 의미는
화면 상에 "너가 작성한 스크립트 이거임" 하고 문자 그대-로 보여준다는 게 아니라
Response 상에 저장되어 있던 스크립트가 들어있어야 한다는 의미이다.
XSS는 결과적으로 공격자가 원하는 스크립트가 실행되어야 하기 때문에
Script가 아닌 String으로 전달되는 건 의미가 없다.
따라서! Stored XSS를 수행하기 위한 과정에서는
(1) 작성한 데이터가 응답 되는 지 확인한 후
(2) 특수 문자(<, ', ", >) 사용 여부를 파악해야 한다. (스크립트 작성해야 하니까!)
(3) 1 & 2번 거친 후에는? 스크립트를 삽입하면 된다!
Last updated