본문 바로가기
웹 취약점 분석

XSS(Cross site Scripting)(ASP기반)

by 웹하는빡통 2019. 6. 19.

XSS(Cross site Scripting)이란 웹 애플리케이션에서 사용자 입력값에 대한 필터링이 제대로 이루어지지 않을 경우 게시판, Q&A, 댓글 등에 악성 스크립트 코드를 넣어 사용자 및 관리자 쿠키/세션을 탈취하는 공격방식 이다.

XSS는 stored xss, reflected xss, dom dasesd로 3가지로 나뉜다.

 

1. Stored XSS:공격자가 해당 게시글에 악성 스크립트를 삽입하여 해당 게시글을 저장 후 불특정 다수를 대상으로 하여 공격하는 방식으로 이는 스크립트가 DB에 저장이 되며(다회성 공격이 가능) 사용자가 클릭을 했을 때 동작을 한다.

 

stored xss 예제)

 

해당 사이트에 XSS취약점이 있는지 게시글에 <script>alert('TEST XSS');</script>을 삽입함.

 

게시글이 등록이 된것을 알 수 있음.

 

 

그 결과 해당 사이트에 XSS취약점이 있다는 것을 알 수 있음.

2. Reflected XSS: 특정 사이트에 있는 URL주소 입력창에 직접 주소를 입력하여 공격하는 기법이다. Reflected XSS는 Stored XSS와 달리 DB에 저장이 되지 않고(일회성 공격) 해특정인 or 불특정 다수)가 URL을 클릭했을 때 공격이 실행된다. Reflected XSS공격은 이메일,메신저,SNS등을 이용하여 공격하는 방식이다. 

 

reflected xss 예제) 

 

해당 URL 주소 query라는 파라미터 값에 <script>window.open("https://www.google.com")<script/>이라는 구문을 삽입함.

위 그림과 같이 URL주소에 <script>구문을 삽입한 주소가 있다. 여기서 우리가 생각해 볼 것은 window.open()안에 있는 구글 주소가 진짜 구글 주소가 아닌 해커가 만든 가짜 구글(파밍 사이트)이라고 가정해보자. 그러면 우리는 이 해당 주소를 복사를해 SNS,메시지,이메일,카XX톡 등으로 특정 사용자에게(친구,직장 상사 등)에게 보낸다.

 

가짜 구글(파밍 사이트)사이트 

이렇게 메신저로 해커가 만든 가짜 구글(파밍 사이트)를 보내고 해당 링크를 클릭했을때  바로 구글 사이트로 이동이 된다. 이렇게 보면 도대체 이걸로 뭘 할 수 있다는 거지?라고 생각이 들 수 있다.

 

그런데 만약 이 사이트가 구글이 아닌 요즘 유행하는 배틀그라운드, 각종 유명 사이트로 파밍 하였다면?? 

내 친구의 게임 계정을 해킹하고 싶다고 가정해보자 그러면 공격자는 친구가 자주 이용하는 게임사이트를 파밍하여

해당 링크(파밍 사이트)+이벤트를 한다는 거짓정보와 함께 메신저로 보낼것이고 친구는 링크를 클릭하여 로그인 창에 계정을 입력 할 것이다.

하지만 그 사이트는 파밍사이트이기에 친구 계정은 공격자에게 넘어간다. Reflected XSS는 이런 방식으로 해당 사용자의 계정을 탈취해 간다.

댓글