워게임/xssgame.com 7

[xssgame] CSP

이번 문제는 CSP 가 적용된 웹사이트에 xss 공격을 성공시켜야 하는 문제인것으로 확인됩니다. CSP는 웹사이트에서 사용되는 컨텐츠에 대한 규칙같은 것입니다. CSP는 헤더를 통해서 규칙을 설정합니다. 그러므로 우선 이 웹사이트의 응답 헤더를 살펴보고 어떤 규칙이 있는지 확인해봐야 합니다. CSP는 Content-Security-Policy의 약자입니다. 이 부분을 살펴보면 특정 도메인만 무조건 SSL 통신을 하도록 설정 되어있다는것을 알수 있습니다. 여기에는 두 도메인이 설정되어있는데, 이 웹사이트 도메인과 사진을 가져오는 도메인입니다. 이 웹사이트에서 about me 페이지의 소스입니다. 잘보면 ?menu= 뒤에있는 문자열에 따라서 페이지가 달라지는것이 보입니다. YWJvdXQ= 이라는 문자열이면 ..

[xssgame] Angular 2

이번에는 Angular 2입니다. 전 문제에서 Angular를 공략하는것을 성공했으니 이번에는 쉽게 풀릴줄 알았습니다. 우선 저번 문제랑 똑같아보이는 웹사이트입니다. 입력한 문자열을 검색해주는 서비스입니다. 웹사이트 소스를 살펴보면 저번이랑 조금 달라졌는데, 바로 저번에 공략했던 공격벡터인 utm 파라미터가 없어져있다는 것입니다. 일단 아무 문자열이나 넣어보면 저번처럼 입력한 문자열을 사이트상에 띄웁니다. 하지만 이 부분은 저번과 동일하게 다음과 같은 HTML 태그로 씌워져있습니다. 이 태그를 뚫고 xss공격을 성공시키는건 아직까지 방법을 찾을수 없으니 다른 방법을 찾아봐야 합니다. 아무리 찾아봐도 도저히 방법이 보이지 않았는데 인터넷을 찾다보니 다음과 같은것을 발견했습니다. https://github...

[xssgame] Angular

이번 문제는 Angular가 쓰이는 사이트에 xss해야합니다. 찾아본 바로는 Angular 가 쓰인 웹사이트에는 템플릿 인젝션을 통해서 xss를 성공시킬수 있다고합니다. 우선 웹사이트 소스를 보면 다음과 같습니다. 아무 문자열이나 입력해보면 다음과 같이 입력한 문자열을 찾는 사이트로 보이는데, 입력한 문자열을 사이트상에 띄웁니다. 이 부분이 뭔가 취약한 부분인것으로 보이는데, 이 부분의 소스코드를 보면 ng-non-bindable 태그가 쓰인것으로 확인되는데, 이 태그에서는 JS 코드를 삽입해도 작동하지 않고 현재 제가 알고있는 한 이 태그를 뚫어서 xss하는 방법은 찾지 못했으므로 일단 보류해놔야합니다. 검색창으로는 xss를 성공시키기 어려울것으로 판단되기 때문에 또다른 공격벡터인 URL을 조작해서 공..

[xssgame] Google Reader

먼저 웹사이트의 구조를 파악해봐야합니다. Sign up 버튼을 눌러보면 다음과 같이 이메일을 입력하는 페이지가 나오고 아무거나 입력하고 Next >> 를 누르면 다음과 같은 페이지가 잠깐 나온뒤 다시 처음 페이지로 가게 됩니다. 우선 웹페이지 소스를 살펴보면 두번째 페이지를 잘보면 아무 이메일이나 입력하고 Next >> 를 입력하면 URL 쿼리가 confirm?next=welcome으로 바뀐다는것을 알수있습니다. 그리고 나서 세번째 페이지를 보면 setTimeout 함수에서 next=뒤에 있는 문자열이 이동할 다음 페이지로 정해진다는것을 알수 있습니다. 만약 URL 쿼리를 confirm?next=signup 으로 바꿔보면 다음과 같이 window.location이 'signup' 으로 바뀌는것을 확인할수..

[xssgame] Gallery

갤러리를 xss하는것이 목표인것 같습니다 공격벡터는 URL말고는 아직까지 보이지 않습니다. 이 소스는 HTML 소스이고 이 소스는 이 웹페이지에서 작동하는 JS 소스입니다. 갤러리에 있는 Cat 1, Cat 2, Cat 3 탭을 누를 때마다 각각의 숫자가 chooseTab('숫자') 방식으로 JS함수에 전달됩니다. 이 함수의 코드를 살펴보면 다음과 같은데 함수 첫번째 부분을 보면 입력된 숫자에 따라서 HTML 코드를 바꾸는 것으로 추정되는 코드가 있습니다. 3번째 줄을 자세히 보면, img 태그를 이용해서 스크립트를 작성하는 부분이 있는데, 중간에 있는 name 변수는 제가 입력한 데이터이기 때문에, 입력값을 잘 조작하면 alert함수를 웹페이지에 삽입할수 있을것으로 보입니다. 일단 구상하는 변조 코드는..

[xssgame] Time's out!

웹사이트에 아무값이나 넣어보면 다음과 같이 입력한 숫자만큼 타이머가 작동하고 시간이 끝나면 Time's up! 이라는 문자열이 alert를 통해서 출력됩니다. 확인을 누르면 타이머를 설정할수 있는 페이지로 돌아갈수있는 버튼이 생기고 이걸 클릭하면 첫 페이지로 돌아옵니다. 이제 웹사이트를 분석해봐야합니다. http://www.xssgame.com/f/WrfpuKFX8GNr/? 첫 페이지 URL http://www.xssgame.com/f/WrfpuKFX8GNr/?timer=3 3을 입력했을때 URL 값을 4로 입력하면 URL 뒤에 붙는 숫자도 4로 바뀌고 타이머가 작동하는 두번째 페이지에서 이 부분이 4로 바뀝니다. 타이머 함수에 전달하는 데이터가 바뀌는것으로 보이는데, 이 2번째줄을 잘보면 img 태그를..

728x90