본문 바로가기

Webhacking/Xss game

[Xss game 2번] 문제 풀이

728x90
반응형

Xss game 2번 문제를 풀어보도록 하겠습니다.

Misson Objective를 보면 역시나 alert() 함수를 실행시키면 된다고 써져있습니다.

자 아래 타겟 브라우저에 열려있는 level2 사이트를 보면 뭔가 sns 처럼 생겼습니다.
test라고 입력하고 share status  해보겠습니다.

test를 입력하니, 입력한 데이터가 저장되어 sns처럼 계속해서 공유가 됨을 확인할 수 있었습니다.
이를 통해 알 수 있는점 두가지가 있죠
   1. 사용자의 입력값을 서버에서 저장한다.
   2. 사용자의 입력값을 서버에서 응답하여 화면에 노출한다

이걸 잘 생각해보면 간단합니다 'Stored XSS'를 위한 전제조건이 성립한다.
"Stored XSS를 이용하여 alert() 함수를 실행하면 되겠다" 라는 생각을 할 수 있습니다.

1번문제를 풀었을때 처럼 가장 간단하게 script태그를 이용해서 alert를 실행시키기 위해 위 빨간색 박스에 있는 것처럼 공격을 시도해 보겠습니다.

그런데 뭔가 이상합니다. 
예상대로라면 script 태그가 인식되면서 alert() 함수가 실행되어야 하는데, 실행되지 않습니다.
이를 통해 한가지를 추측할 수 있습니다.
<script> 태그를 서버에서 방어하고 있다!

위에서 추측한 내용을 바탕으로 script태그를 사용하지 않고 Javascript를 사용하기 위해
img 태그src속성을 일부러 이상한 값을 넣고 에러를 발생시켜 onerror 속성을 통해 javascript alert함수를 실행시킬 수 있도록
공격 구문을 빨간 박스에 있는 것처럼 작성해 보았습니다.

그러면 이렇게 Stored XSS로 인해 alert가 잘 실행됨을 확인 할 수 있습니다.

마지막에 결과를 보니 img 태그가 정상적으로 실행되었음을 알 수 있으며 다음 단계로 넘어갈 수 있습니다.

728x90
반응형

'Webhacking > Xss game' 카테고리의 다른 글

[Xss game 3번] 문제 풀이  (0) 2020.10.11
[Xss game 1번] 문제 풀이  (0) 2020.10.11