[XSS Challenge] Stage 04
해당 문제이다. 3단계와 비슷해서 일단 소스코드를 확인해봤다.
hidden이라는 input type이 추가가 되어 있어서 이에 대해 찾아봤다.
hidden은 사용자가 접속한 IP, 로그인한 상태에서의 계정 정보, 게시물의 답글인 경우 게시물의 ID 등 사용자가 입력하지 않아도 필요한 값이 있다. 이러한 값들이 type이 hidden인 input 태그로 만들어서 넘겨진다. 다른 type의 input과 마찬가지로 이름은 name, 값은 value로 정한다. 그리고 해당 name 변수의 내용이 곧 value이다.
그래서 p3의 value의 값에 <script>alert(document.domain);</script>에 넣어보고 엔터를 쳐보고 제출을 해봤지만 아무런 반응이 일어나지 않았다. (다시 돌아와서 보니 해당 웹 사이트에 쳐보고 값 변화를 확인해야 했음)
해당 자바스크립트 창에 들어가서 확인해보니 얻을 건 없는거 같다.
그래서 burp suite에 가서 확인해보려 했는데 왜 이런 오류가 나는지 모르겠다...
그래서 다시 개발자 도구에 들어가서 hidden의 의미를 다시 생각해보니까 hidden에 쓴 내용이 어디론가 저장이 되는데 그게 hidden의 value인데 계속 p2에 값을 넣고 search를 눌러서 아무런 반응이 없다는 것을 꺠달았다.
그래서 hidden 박스에 값을 넣어주기 위해 위에 했던 거와 같이 다시, hidden의 type을 text로 바꾸고
그 박스에 해당 script 태그를 넣고 엔터를 누르니까
값이 변해있음을 확인할 수 있었다.
원래는 이러한 형태인데 박스에 <>를 넣어보니까
그런데 뒤에 따옴표 뒤에 > 태그가 붙어 있어서 먹히지 않았던 것 같다. 내가 쓴 내용이 value의 따옴표 안에 들어가니까
"<script>alert(documet.domain);</script>" 라고 하면
이렇게 잘못되서 다시 시도해보니까
"><script>alert(document.domain)</script><" 로 입력해야 했다.
(사실 맞추는 거 헷갈림..)