해킹/Web Hacking(웹 해킹)

[XSS Game 풀이] (2) Persistence is key

V1nc3nt 2019. 9. 25. 14:16

1. 제가 포스팅하는 내용은 막 가져다 쓰셔도 됩니다. 출처만 적어주세요

2. 틀리거나 정정이 필요한 내용은 막 적어주셔도 됩니다.

3. 단순 공부와 정보 제공을 위한 포스팅이므로 아래 내용을 활용한 그 어떤 불법적인 행동도 저는 책임 못지니 알아서들 하시면 됩니다.

 

2번 문제, 뭔가 설명이 늘었다.

 XSS Game 2번 문제 풀이를 포스팅 하겠습니다. 마찬가지로 alert()만 띄우면 끝나는 문제입니다만 그냥 <script>alert(1)</script>만 적으면 끝나던 1번 문제에 비해 제약조건이 늘었습니다.

 

뭔가 외국 포럼같은 느낌의 페이지..

 뭐 적고싶은거 아무거나 적을수 있는 포스팅이라고 합니다. Madness한 포스팅도 하라고 하는데 서양 유머인가 봅니다. 일단 1번 문제와 똑같은 XSS 코드인 <script>alert(1)</script> 먼저 적어보도록 하겠습니다.

 

Share status! 클-릭!

 설마 이걸로 되겠어요? 하하하

 

??? 아무것도 입력되지 않았다.

 

 역시나 아무것도 입력되지 않았습니다. 아마 <script>태그를 공백으로 없애버리는 제약조건이 있는 듯 합니다. 그렇다면!!! <img>태그를 이용해서 당연히 에러가 발생하도록 코드를 작성하여 이미지를 불러온 후 onError라는 이벤트 핸들러를 통해 alert(1)을 띄워보도록 하겠습니다.

 

XSS 공격 시 자주 쓰이는 방법 중에 하나입니다.

 <img> 태그 내에 src= 속성 이후에 이미지의 경로를 적어줘야 하는데 0으로만 적으면 경로상에 가보니 뭐 그런 이미지가 없고.. 따라서 에러가 나타나게 되는거쥬! 에러가 나타나면 이벤트 핸들러를 통해 alert(1)을 실행하게 됩니다.

 

성-공

 다음 레벨로 넘어가도록 합시다.

 

-요약-

1. <script>등의 태그를 적지 못하도록 원천 차단하는 방법으로 가-장 기본적인 XSS 공격 방어 가능

2. 하지만, <img>같은 태그와 onError 등의 이벤트 핸들러를 통해 얼마든지 우회 가능합니다.

3. 정답 : <img src=0 onError="alert(1)">

4. 3. 말고도 정답은 많습니다. 본인만의 정답을 찾는것도 재밌겠네요