Wargame/Webhacking.kr

Webhacking.kr old 58번 문제 풀이

esyeonge 2021. 5. 1. 00:41

58번을 누르면 위와 같은 문제가 나온다.

 

1을 보냈을 때는 command not found라는 메시지가 뜬다.

명령어를 입력하는 곳인 것 같아서 ls를 쳐보았다.

 

그랬더니 index.js와 temp.html 파일이 있음을 알 수 있었다.

 

안 되는 linux 명령어가 많아서 되는 명령어를 확인하기 위해 help를 입력하였다.

help를 입력하니 ls, id, flag, help 총 4개의 명령어가 있는 것을 확인할 수 있고 id와 flag를 각각 입력해 보았다.

 

위는 id를 입력한 결과, 아래는 flag를 입력한 결과이다.

 

소스코드를 확인해 보았다.

각각의 문법을 간단히 살펴보자.

 

socket = io()를 통해 새로운 소켓을 생성해주고, emit()을 통해 메시지를 보낸다.

그런 다음 on을 통해서 서버의 응답을 보여주고 있다.

 

지금 보내는 메시지를 보면 username:보내는 명령어 구조로 되어 있는데,

위에서 admin만 플래그 값을 볼 수 있다고 했으니 admin:flag로 메시지를 보낸다면 flag 값을 얻을 수 있을 것이다.

 

$('#m').val()이 입력값이니까 이를 flag로 바꾸고 username을 admin으로 바꾼다.

그럼 FLAG 값이 뜨게 된다.

 

플래그 값을 입력했더니 문제가 풀렸다!