이번 포스트에서는 XSS game의 Level 6 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 웹 사이트가 외부 파일을 요청해서 alert()을 실행하게 하면 된다. ## 문제 풀이 : 코드를 먼저 확인해보겠다. 43번째 코드를 확인해면 #뒤에 오는 값이 그대로 gadget의 경로로 활용된다고 한다. 그럼 바로 한 번 확인해보겠다. ### 공격 코드 : https://xss-game.appspot.com/level6/frame#GOTYOU ### 실행 결과 : GOTYOU가 화면에 출력된 것을 확인할 수 있다. 그럼 Data Url Schema라는 기법을 통해 공격을 시도해보겠다. Data Url Schema : 데이터를 URL 표현으로 바꾼다. 사용법은 d..
이번 포스트에서는 XSS game의 Level 5 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 사진 하단에 표시된 웹 사이트에 간단하게 alert()만 띄우면 된다. ## 문제 풀이 : Sign up을 누르면 다음과 같은 화면이 나온다. 이메일을 입력하고 Next 버튼을 누르면 다음과 같은 화면이 나온다. 5초 뒤에 다시 초기화면으로 돌아간다. 이어서 코드를 확인해보겠다. next 파라미터 값이 그대로 활용되어 next 변수값에 들어간 것을 확인할 수 있다. 즉, 우리는 next 변수를 통해 자바스크립트를 전달할 수 있다. 그러나 URL을 모르기 때문에 URL을 알아내보도록 하겠다. 13번째 코드를 확인해보면 url을 알 수 있다. 이제 url와 next 파..
이번 포스트에서는 XSS game의 Level 4 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 사진 하단에 표시된 웹 사이트에 간단하게 alert()만 띄우면 된다. ## 문제 풀이 : 우선 해당 웹 사이트에 alert()를 바로 삽입해서 공격해보겠다. ### 공격 코드 : ### 실행 결과 : 제대로 작동하지 않고 있다. 이어서 코드를 분석해보겠다. 분석한 결과, 우리가 삽입한 값이 23번째 줄의 timer에 들어간다는 것을 알 수 있다. 그러나 우리가 입력한 값이 parseInt() 함수를 통해 디코딩 되고 있다. 그럼 23번째 코드의 형식에 맞게 공격문을 삽입해보겠다. ### 공격 코드 : 1');alert('GOTYOU ### 실행 결과 : 공격에 성..
이번 포스트에서는 XSS game의 Level 3 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 사진 하단에 표시된 웹 사이트에 간단하게 alert()만 띄우면 된다. 단 이번 문제는 애플리케이션 상이 아닌 URL 주소란을 활용해야 한다. ## 문제 풀이 : 우선 해당 웹 사이트에 XSS 공격이 적용되는지를 확인해 보겠다. ### 공격 코드 : 가 출력된 것을 확인할 수 있다. 여기서는 사진의 확장자인 jpg가 출력되었으므로 img태그가 활용되고 있다는 것을 추측해낼 수 있다. 또한 "'" 작은 따옴표로 끝나는 것을 알 수 있다. 그럼 img 태그라고 가정하여 onerror 핸들러를 활용하여 끼워맞추면서 공격을 실행해보곘다. ### 공격 코드 : ' onerr..
이번 포스트에서는 XSS game의 Level 2 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 사진 하단에 표시된 웹 사이트에 간단하게 alert()만 띄우면 된다. ## 문제 풀이 : script 태그를 사용해서 alert() 함수를 삽입해보겠다. ### 공격 코드 : ### 실행 결과 : script 문을 삽입해보니 제대로 실행되지 않다는 것을 알 수 있다. 힌트를 확인해보니 다음과 같다. script 태그가 동작하지 않다고 한다. 아마 필터링 처리되었을 것 같다. 또한 그 대신 i, m, g와 onerror가 동작한다고 한다. 그럼 img 태그의 onerror 핸들러를 활용해서 공격을 실행해보겠다. ### 공격 코드 : ### 실행 결과 : 공격에 성공..
이번 포스트에서는 XSS game의 Level 1 문제를 풀어보도록 하겠다. 문제에 들어가면 다음과 같은 화면이 보인다. ## 문제 해석 : 사진 하단에 표시된 웹 사이트에 간단하게 alert()만 띄우면 된다. ## 문제 풀이 : script 태그를 사용해서 alert() 함수를 삽입해보겠다. ### 공격 코드 : ### 실행 결과 : 공격에 성공한 것을 확인할 수 있다.