목록WarGame_WriteUp/XSS-Game (6)
starting point
url에 #뒤에 적힌 경로를 통해 gadget.js를 로드하는 것을 추측할 수 있다. 경로를 조금 바꾸니 제대로 로드가 되지 않는 것처럼 보인다. 개발자 도구를 통해 변화를 관찰해 보겠다. url의 #뒤에 적힌 경로가 그대로 적혀 외부 리소스를 가져오는 것을 알 수 있다. [사진4]의 리소스 요청은 실패한 것을 [사진5]의 콘솔창을 통해서 확인할 수 있다. 그렇다면 이 문제는 외부의 리소스를 가져와서 문제를 해결해 볼 수 있을 것이다. 하지만 외부 리소스를 이용해서 문제를 해결하려면 서버를 생성해야 하기 때문에 외부리소스를 가져오지 않고 해결하는 방법이 있다. data URL scheme이다. data:[미디어타입][;인코딩방식],의 형태를 가진다. 이러한 방식을 통해서 외부 리소스를 가져오지 않고 직접..
Sign up을 클릭하면 회원가입 창으로 넘어간다. url을 보면 next변수에 confirm이라는 값이 들어가는 것을 볼 수 있다. 이곳에 다른 값을 넣어보고 변화하는 것을 개발자 도구를 통해 살펴보겠다. 입력되는 값에 따라 태그의 링크가 변화하는 것을 볼 수 있다. 이 곳에 onclick속성을 넣는 방법을 통해 문제를 해결할 수 있다. 힌트를 보면 onclick속성을 사용하는 방법 이외에 방법을 사용하라고 나와있다. 이를 해결하기 위해서 다른 방법을 찾아야 한다. 태그와 on속성을 사용하지 않고 자바스크립트를 실행시킬 수 있는 방법이 있다. javasciprt:(anycode)를 통해 자바스크립트를 실행시킬 수 있다. 원래는 태그를 통해서 자바스크립트가 실해되지만 이러한 방법으로도 간단한 자바스크립트..
입력된 시간만큼 타이머가 만들어지는 웹사이트이다. 또한 입력한 시간이 추력되느 것을 알 수 있다. 입력한 시간이 지나면 위와 같은 알림창이 나타난다. html코드를 보면 입력한 숫자가 startTimer()의 매개변수가 되고, 태그의 문자열로 입력되는 것을 볼 수 있다. 태그를 대상으로 우선 공격해 보았다. 스크립트 문이 그대로 출력되며 경고창이 뜨지 않는 것을 볼 수 있다. 태그안에 태그가 그대로 출력된 것을 보면 "
3개의 인덱스를 선택하면 각 인덱스에 해당하는 이미지를 출력해주는 페이지다. 그에 따라 url의 frame#(num1)에서 num1부분이 변화하는 것을 알 수 있다. 그리고 이번 문제는 입력할 수 있는 입력창이 없으므로 url을 이용해야 함을 알 수 있고, 아래의 그림같이 문제의 설명을 통해서도 알 수 있다. 각 인덱스를 선택했을 때 html문서에 어떤 변화가 있는지 살펴보기 위해 개발자 도구를 통해 알아보겠다. onclick속성으로 chooseTab(string)함수가 실행되고 그에 따라 Image (num2)와 cloud(num3)에서 num2, num3부분이 변화하는 것을 알 수 있다. 이를 통해 이 두 부분을 공략해야 함을 알 수 있다. chooseTab()함수가 구현된 것을 보니 전달된 매개변수..