lriyan 2024. 9. 14. 21:16

공격 사이트에 접속해보면 총 3개의 페이지가 연결되어있는것을 확인할수 있다.

 

 

첫번째 페이지에 접속해보면 alert(1)이 출력되는것을 볼 수 있다.

 

 

이때 페이지의 도메인을 확인해보면 <script>alert(1)</script>로 <script> 사이의

alert(1)이 그대로 출려되는것을 확인할 수 있다.

 

도메인의 alert(1)을 alert(10)으로 바꾼 후 다시 페이지를 확인해보면

 

이렇게 alert(10)이 그대로 적용되어 10이 출력된다.

 

첫번째 페이지에서는 xss공격이 가능하다는것을 확인할 수 있다.

 

 

 

 

두번째 페이지를 확인해보면 접속시 hello가 출력되며 이 페이지에 다시 접속할때마다

계속 hello가 출력되는것을 확인할 수 있다.

 

이 사이트의 도메인도 첫번째 페이지와 마찬가지로 memo?memo=hello로 hello가 우회 없이

그대로 출력되는것을 확인할 수 있다. 첫번째와 마찬가지로 도메인의 hello를 다른 단어로 바꾼 후 재접속해보면

바꾼 단어인 abc가 출력되는것을 볼 수 있다.

문자의 출력이 가능한 유일한 페이지기 때문에 아마 이 페이지를 통해 플레그를 출력하는것 같다.

 

 

마지막 페이지를 확인해보면 사용자의 입력을 받는것을 볼 수 있다.

이 페이지에 xss를 가하여 memo 페이지에 플레그를 출력해야 한다.

 

<script>document.location.href = `memo?memo=${document.cookie}`;</script>

위 명령어를 통해 플레그를 출력할수 있다.

document.location.href는 URL을 변경하는 명령어로 설정한 특정 페이지로 이동할수 있다.

location 명령어를 사용해 memo?memo 페이지로 이동해 document.cookie 명령어로 페이지의 쿠기를 출력해보면

 

 

이렇게 플레그가 출력되는것을 확인할 수 있다.

 

xss-2는 여기서 간단한 우회만 하면 플레그를 찾을수 있다.

xss-2에서는 <script>가 막혀있기 때문에 다른 명령어를 통해 우회하여 공격해야 한다.

이때 가장 대표적으로 쓸 수 있는것이  onerror로 img 경로에 아무 문자나

삽입한 후 자신이 원하는 구문을 적용시키면 된다.

 

 

<img src=x onerror=" document.location.href = `memo?memo=${document.cookie}`; ">

위 명령어를 통해 간단하게 플레그를 얻을 수 있다.