워게임/xss-game.appspot.com 6

[XSS game] Level 6

이번 레벨이 마지막 레벨인데, 그만큼 난이도가 있어보입니다. 우선 살펴보면 응용 프로그램이 실행되도록하는 외부 파일을 불러오는 사이트로 보입니다. 웹사이트의 설명을 보면 악성 URL에 대한 필터링은 따로 없는것으로 예상되고 공격벡터도 URL이 유일해 보이므로 URL을 중점적으로 분석해보겠습니다. https://xss-game.appspot.com/level6/frame#/static/gadget.js 다음과 같은 URL에 들어갔을때 자바스크립트가 다음과 같은 동작을 합니다. 마지막에 오는 자바스크립트인 부분을 보면 URL에서 # 뒤에오는 경로가 자바스크립트에 올라가는것을 볼수 있습니다. 그러므로 # 뒤에오는 부분을 통해서 웹사이트에 alert를 삽입하는것을 목표로 해야합니다. 일단 이 사이트에 alert..

[XSS game] Level 5

이번에 주어진 웹사이트는 베타를 등록하기 위해서 이메일을 보낼수있게 해주는 사이트 입니다. 일단 웹사이트를 둘러봤을때 공격벡터는 URL과 Enter email칸으로 유추해볼수 있습니다 소스코드를 분석해보면 Enter email 칸에 이메일을 입력한후 Next를 누르면 confirm 웹사이트로 넘어가는것을 확인할수 있습니다. 여기서 URL을 확인해보면 .../signup?next=confirm 이라는 방식으로 되있는것을 확인할수 있고 Next 버튼을 눌렀을때 .../confirm 으로 넘어가는것을 통해서 next= 다음에 오는 값을 조작하면 a href 태그에 들어가는 값을 조작할수 있을것이라고 유추해볼수 있고 실제로 값을 welcome으로 조작해보면 다음과 같이 Next 버튼을 눌렀을때 넘어가는 주소가 ..

[XSS game] Level 4

이번 웹사이트는 타이머를 동작시킬 시간을 10으로 입력하면 다음과 같이 타이머가 10초동안 동작하고 시간이 끝나면 Time is up! 이라는 메세지가 출력됩니다. 공격벡터는 2가지로 생각됩니다. 이 스크립트는 웹사이트의 타이머가 구현된 자바스크립트입니다. 숫자가 입력되면 그 숫자만큼 타이머가 작동하는 방식인데 소스코드를 보면, img 태그를 통해서 로딩 gif 파일이 불러와지면서 입력된 숫자를 onload 이벤트처리 태그를 통해서 startTimer 함수로 보내는 방식입니다. 이 부분을 보면 10이라는 숫자는 클라이언트 상에 그대로 전달되기 때문에 이 부분을 통해서 스크립트를 삽입할수 있을것이라고 가정하고 작성해보면 10'); alert('1 다음과 같은 코드를 작성할수 있는데 이 코드를 숫자를 입력하..

[XSS game] Level 3

이번에 주어진 웹사이트는 이미지 3개가 업로드되있고 이미지 1,2,3 버튼을 누르면 그에 맞는 이미지를 불러오는 방식 입니다. 페이지 소스를 확인해보면 다음과 같은 자바스크립트 코드를 확인해볼수 있습니다. 코드 중에서 다음과 같은 부분을 확인해볼수 있는데 이 부분을 보면 URL이 클라이언트 상에서 어떻게 받아들여지는지 추측해볼수 있습니다. html 변수는 Image+parseInt(num) 이후에 HTML 태그를 통해서 이미지를 불러오는것을 확인할수 있는데 여기서 URL을 통해서 이 HTML 태그를 조작해서 num 변수 부분을 조작할수 있을것이라고 추측해볼수 있습니다. 그러므로 num 부분을 onerror 이벤트처리 태그를 사용해서 alert를 삽입해본다면 https://xss-game.appspot.c..

[XSS game] Level 2

이번에 주어진 웹사이트는 간단한 게시판 사이트입니다. 먼저 저번 레벨에서 썼던 스크립트를 다시한번 넣어보면 다음과 같이 웹사이트에 별다른 반응이 없는것을 확인할수 있습니다. 소스코드를 살펴보면 게시물이 blockquote라는 태그로 둘러쌓여있는것을 볼수 있습니다. 이 HTML 태그는 주로 웹사이트에서 들여쓰기를 해야하는 경우가 생길때 쓸수있는 태그입니다. 이로 인해서 script태그가 막혀버리기 때문에 다른 방법을 사용해서 xss공격을 수행해야합니다. 이런 경우에는 DOM based xss 라는 방법을 통해서 공격을 시도해볼수 있는데 다음과 같은 스크립트를 게시판에 업로드하면 성공 메세지가 출력되면서 다음 Level로 넘어갈수 있습니다.

728x90