개발

XSS (Cross Site Scripting) 에 관하여.

학생. 2007. 2. 28. 10:30

md5에 관해 알아보다.  xss라는 해킹기법을 들어서 정리합니다.

 

사이트가 있습니다.

이 사이트는 세션을 이용해 회원로그인 상태를 유지하고있는 사이트입니다.

이 사이트의 회원 A, B가 있습니다.

 

A가 해킹을 시도하려는 사람입니다^^

 

예제는 코인선물하기를 예로 들겠습니다.

 

개발자는 코인선물하기를 아래와갔이 코딩하였습니다.

 

coin.jsp 페이지에서 폼으로 입력값을들 모두 받습니다.

 

금액 / 받을사람 / 보내는사람(보통 hidden 일듯합니다.)

 

coin_act.jsp페이지에서는 전달받은 폼값으로 실제 로직을 처리합니다.

 

아마도 보내기전에 보내는사람이 현재 로그인한 사람인지를 확인하기 위하서 세션에 있는 아이디와

전달받은 아이디가 같은지 확인 후에 같고 잔액이 충분하다면 처리를 할 것입니다.

 

자. 이제 A회원이 예리하게 사이트를 분석한후에... 낚시를 시작합니다.

 

B회원의 돈을 자기에게 선물하도록 하는것이 목표입니다.

 

사이트에 로그인을하여 coin.jsp 페이지의 웹 소스를 보면서 폼값들을 확인합니다.

 

우선 보내는사람을 자기아이디가 아닌 B회원의 아이디로 변경해서 submit을 해봅니다.

 

coin_act.jsp페이지에서 현재 세션의 아이디와 전달받은 아이디가 다른면 전송이 되질 않게 되어있어 실패합니다.

 

그래서 A회원은 사이트내의 html소스를 사용할수 있는 게시판에 아래 처럼 낚시글을 적습니다.

 

B회원님을 위한!!! 꽁짜이벤트!!!!...

 

내용은 A회원이 변조시킨 선물하기 폼이 숨어 있는 쓸따리없는 페이지입니다만...

 

자동으로 서밋이 되도록 코딩을 해둡니다.

 

그럼 B회원이 글을 읽을려고 페이지를 열면 자동으로 A회원이 원하는 폼값이 coin_act.jsp페이지로 전송이 됩니다.

 

코인은 물론 선물이 되겠죠...

 

오랬동안 모르고 둔다면 골치아픈 cs가 많이 생길듯합니다...

 

이상이 XSS의 한 형태입니다.

 

많은 형태들이 있다고 합니다.

 

코딩할때 항상 주의하고 생각하며 해야겠습니다...ㅡㅜ

반응형