command창이 나오길래 명령어를 입력해봤다.
ls를 입력하면 index.js temp.html이 출력되고, flag를 입력하니까 persmission deniend... admin only! 이라고 출력되었다.
힌트를 얻기위해 소스코드를 보았다.
socekt.io() : 실시간으로 상호작용하는 웹 서비스를 만드는 기술인 웹소켓을 쉽게 사용할 수 있게 해주는 모듈
var socket = io() 부분이 socket을 연결해주고, socket.emit함수로 데이터를 전송하고 socket.on함수로 수신한다.
e.preventDefault() : 페이지를 이동시키거나 form안에 있는 input 등을 전송한다던가 그 동작을 중지시키는 함수
코드를 보면, 소캣통신을 하는데 username은 'guest'로 되어있고 'guest:입력값'을 전송한다.
소캣 통신을 할 때, username을 admin으로 바꿔주면 flag값을 볼 수 있을 것이다.
username을 바꿔주기 위해서는 프록시를 이용해야한다.
fiddler에서 F11(Before request)을 누르고, 새로고침을 한다.
그 다음 쿠키정보를 삭제하고, Break on Response를 누른다. (브라우저한테 요청 전, username을 바꾸기 위해)
-> 쿠키정보를 삭제하는 이유는 새로운 통신이라는 것을 알려주기 위해서이다.
username을 admin으로 바꾸고, Run to Completion을 누르면 username이 바뀐채로 브라우저에게 전송된다 !
그리고 다시 입력창에 flag를 치면, FLAG값이 출력된다 ㅎㅅㅎ!
참고
'WEB > webhacking.kr (old)' 카테고리의 다른 글
webhacking.kr 61번 (0) | 2020.02.19 |
---|---|
webhacking.kr 59번 (0) | 2020.02.18 |
webhacking.kr 56번 (0) | 2020.02.17 |
webhacking.kr 54번 (0) | 2020.02.16 |
webhacking.kr 51번 (0) | 2020.02.16 |